记录一个在获取微信小程序手机号的异常
在获取了access_token后 获取电话号码一直报 access_token失效
要把链接中的ACCESS_TOKEN 替换成我们获取的access_token post请求 参数只传code就可以了, 并且参数要用raw的方式传
上代码
String accessToken = (String) redisUtils.get("Access_token");
if (StringUtils.isBlank(accessToken)) {
//获取Access_token
WechatTokenResponse response = restTemplate.getForObject(WechatConstants.getTokenUrl(), WechatTokenResponse.class);
if (response == null || response.getAccess_token() == null) {
throw new RemoteLinkException("获取小程序Access_token异常");
}
accessToken = response.getAccess_token();
log.info("获取小程序Access_token成功" + response);
redisUtils.set("Access_token", accessToken, response.getExpires_in());
}
Map<String, String> paramMap = new HashMap<>();
paramMap.put("code",code);
HttpHeaders headers = new HttpHeaders();
HttpEntity<Map<String, String>> httpEntity = new HttpEntity<>(paramMap,headers);
String url = WechatConstants.getPhoneNumberUrl().replace("ACCESS_TOKEN", accessToken);
WechatPhoneResponse wechatPhoneResponse = restTemplate.postForEntity(url, httpEntity, WechatPhoneResponse.class).getBody();