当前位置: 首页 > 后端技术 > Java

68-微信公众号开发中涉及的token和access_token

时间:2023-04-01 17:53:56 Java

1.基础支持的access_token官方文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html实现:CommonConstant.java:StringWXGZH_TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s";StringWXGZH_SNS_OAUTH2_ACCESS_TOKEN_URL="https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code";publicJsonResponsegetToken(Stringappid,Stringsecret){Stringtoken=(String)wxgzhCommonCache.getBaseToken(appid);if(StringUtils.isEmpty(token)){Stringurl=String.format(CommonConstant.WXGZH_TOKEN_URL,appid,secret);字符串结果=okHttpUtil.get(url);if(result==null){logger.info("结果为空");returnresult(-1,"获取token失败",null);}JSONObjectresultObj=JSON.parseObject(结果);如果(resultObj==null){logger.info("结果为空");returnresult(-1,"获取token失败",null);}Stringerrcode=resultObj.getString("errcode");if(StringUtils.isNotEmpty(errcode)){logger.info("获取令牌,返回错误,result={}",result);returnresult(-2,"获取token,返回错误",resultObj);}token=resultObj.getString("access_token");intexpires_in=resultObj.getInteger("expires_in");expires_in=expires_in-300;//保留5分钟wxgzhCommonCache.putBaseToken(appid,token,expires_in);}返回结果(0,“”,令牌);}2。网页授权需要获取的用户access_token官方文档:https://developers.weixin.qq....代码实现:publicJsonResponsegetAccessToken(Stringcode){Stringurl=String.format(CommonConstant.WXGZH_SNS_OAUTH2_ACCESS_TOKEN_URL,appId,appSecret,code);字符串结果=okHttpUtil.get(url);JsonResponsejs=checkResult(result,"获取access_token");if(js.getCode().intValue()!=0){返回js;}返回js;}