public AuthLoginRespVO QywxSocialLogin(QywxLoginReqVo reqVO) {
//查询redis中是否存在access_token
String accessToken = stringRedisTemplate.opsForValue().get("access_token");
AccessTokenVo accessTokenVo = null;
if (StringUtils.isBlank(accessToken)) {
//请求Code码
Map<String, Object> getAccessTokenParam = new HashMap<>();
getAccessTokenParam.put("corpid", companyId);
getAccessTokenParam.put("corpsecret", appSecret);
String AccessTokenRes = HttpUtil.get("https://qyapi.weixin.qq.com/cgi-bin/gettoken", getAccessTokenParam);
accessTokenVo = JSON.parseObject(AccessTokenRes, AccessTokenVo.class);
log.info("accessTokenVo:" + accessTokenVo.toString());
//todo 获取到access_token后有效期2个小时,保存到redis后
stringRedisTemplate.opsForValue().set("access_token", accessTokenVo.getAccess_token(), 3600, TimeUnit.SECONDS);
;
} else {
accessTokenVo = new AccessTokenVo().setAccess_token(accessToken);
}
//获取用户信息
Map<String, Object> getUserTicket = new HashMap<>();
getUserTicket.put("access_token", accessTokenVo.getAccess_token());
getUserTicket.put("code", reqVO.getCode());
String getUserTicketRes = HttpUtil.get("https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo", getUserTicket);
UserTicketVo UserTicketVo = JSON.parseObject(getUserTicketRes, UserTicketVo.class);
// 获取到这个
log.info("accessTokenVo:" + UserTicketVo.toString());
String userInfo = HttpUtil.post("https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token=" + accessTokenVo.getAccess_token(),
"{\"user_ticket\":\"" + UserTicketVo.getUser_ticket() + "\"}");
UserInfoVo userInfoVo = JSON.parseObject(userInfo, UserInfoVo.class);
}
11-24
6750
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)