private String code2Session(String jsCode) {
// https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
String uri = miniprogramProperty.getCode2SessionUri() + "?appid=" + miniprogramProperty.getAppId()
+ "&secret=" + miniprogramProperty.getAppSecret() + "&js_code=" + jsCode + "&grant_type=authorization_code";
Mono<String> code2SessionResultMono = WebClient.create()
.get().uri(uri).retrieve().bodyToMono(String.class);
String result = code2SessionResultMono.block();
log.debug("code2SessionResultMono: {}", result);
Code2SessionResult code2SessionResult;
try {
code2SessionResult = objectMapper.readValue(result, Code2SessionResult.class);
} catch (JsonProcessingException e) {
log.error("小程序结果解析失败,result={}", result);
throw new ServiceException("小程序登录结果解析失败");
}
if (code2SessionResult == null) {
log.error("code2SessionResult is null");
throw new ServiceException("小程序登录失败1");
}
if (code2SessionResult.errcode() != null && (!"0".equals(code2SessionResult.errcode()))) {
log.error("code2SessionResult errcode: {}, msg: {}", code2SessionResult.errcode(), code2SessionResult.errmsg());
throw new ServiceException("小程序登录失败,code=" + code2SessionResult.errcode());
}
return code2SessionResult.openid;
}
~~~`