public CommonResult validateAttentionWxPublic(String openId) throws Exception {
CommonResult cr = new CommonResult();
String accessToken = "";
String value = <span style="font-family: Arial, Helvetica, sans-serif;">utilRedisDao.getRedisKey(REDIS_KEY_GLOBAL_TOKEN);</span>
if(StringUtils.equals(<span style="font-family: Arial, Helvetica, sans-serif;">value </span><span style="font-family: Arial, Helvetica, sans-serif;">, "0")){</span>
String appid = StringUtils.trimToEmpty(WX_APPID);
String secret = StringUtils.trimToEmpty(WX_SECRET);
String url = WX_TOKEN_URL+"?grant_type=client_credential&appid=" + appid + "&secret=" + secret;
logger.info("获取token"+url);
String tokenResult = HttpUtil.doGetUrl(url);
logger.info("获取token响应结果"+tokenResult);
JSONObject obj = JSONObject.fromObject(tokenResult);
accessToken = obj.getString("access_token");
utilRedisDao.setRedisKey(REDIS_KEY_GLOBAL_TOKEN, accessToken, 7000);
}else{
accessToken = <span style="font-family: Arial, Helvetica, sans-serif;">value </span>;
}
String url = "https://api.weixin.qq.com/cgi-bin/user/info"+"?access_token="+accessToken+"&openid="+openId+"&lang=zh_CN";
String result = HttpUtil.doGetUrl(url);
logger.info("获取微信用户信息"+result);
JSONObject objUserInfo = JSONObject.fromObject(result);
logger.info("获取微信用户信息返回响应结果:"+objUserInfo.toString());
if(objUserInfo.containsKey("errcode")){
cr.setErrorcode(WXTokenConstant.ERROR_TOKEN);
}else{
int subscribe = objUserInfo.getInt("subscribe");
if(subscribe==1){
cr.setErrorcode(WXTokenConstant.SUBSCRIBE);
}else{
cr.setErrorcode(WXTokenConstant.NO_SUBSCRIBE);
}
}
return cr;
}
public final String REDIS_KEY_GLOBAL_TOKEN="redis_key_global_token";
欢迎关注我的公众号进行一起讨论学习: