①小程序端wx.login获取code
wx.login({
success(res) {
if (res.code) {
// 发起网络请求
wx.request({
url: 'https://test.com/onLogin',
data: {
code: res.code
}
})
} else {
console.log('登录失败!' + res.errMsg)
}
}
})
②调用java后台获取session_key和openid
/**
* 获取openid和sessionKey方法
* @param code
* @return
*/
private JSONObject getSessionKeyOrOpenId(String code){
String tokenUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code";
tokenUrl = tokenUrl.replace("APPID",miniAppId).replace("SECRET",miniAppsecret).replace("JSCODE", code);
String resultToken = restTemplateUtil.doGet(tokenUrl).getBody();
JSONObject jsonObject = JSONUtil.parseObj(resultToken);
return jsonObject;
}
③根据前端传过来的sessionKey解密手机号做绑定或登录操作
/**
* 微信小程序登录
* @param miniLoginDto
* @return
*/
@PostMapping("/miniLogin")
public Map miniLogin(@RequestBody MiniLoginDto miniLoginDto){
Map reuslt = new HashMap();
// 1.解析加密数据
String phoneNumber = null;
JSONObject