openID是微信用户的唯一标识。我们通过从前端传来的 code 调用登录API获取openID和session_key。这个过程想必已经有很多例子。接下来我会介绍一种通过现成的SDK来实现。首先需要大家熟悉它。在下面的讲解中,我会指出所用到的类和方法
cn.binarywang.wx.miniapp.api.WxMaService;
cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; //返回参数类
public String login(String code) {
if (StringUtils.isEmpty(code)) {
return "code is empty";
}
try {
WxMaJscode2SessionResult sessionResult = wxMaService.getUserService().getSessionInfo(code); //获取openID及session_key
log.info("openid: openid={}", sessionResult.getOpenid());
log.info("sessionKey: sessionKey={}", sessionResult.getSessionKey());
return JsonUtil.toJson(sessionResult);
} catch (WxErrorException e) {
log.error(e.getMessage());
return e.toString();
}
}
只有js_code为变化值,其余都是定值。所以只需传入参数js_code,其他会自动填写。但需要在项目配置文件中填写好其他3个参数。(配置在.yml文件中)
wechat:
pay:
appId:
mchId:
mchKey:
keyPath:
notifyUrl:
miniapp:
appid:
secret:
token:
aesKey:
msgDataForm: JSON