根据微信的开发文档 我们要通过wx.login()或者你用的uniapp 的uni.login()
获取到我们需要的code
const res = await uni.login().catch(err => err)
在你要运行的方法复制上去打印一下就获取到了code,前端的就完事了。
接下来的是后端
public AjaxResult getWxLoginInfo(String code){
String url ="https://api.weixin.qq.com/sns/jscode2session";
String param = StringUtils.format("appid={}&secret={}&js_code={}&grant_type=authorization_code", AppID, AppSecret, code);
String json = HttpUtils.sendGet(url,param);
JSONObject jsonObject = JSONObject.parseObject(json);
String session_key = (String) jsonObject.get("session_key");
String openid = (String) jsonObject.get("openid");
if (StringUtils.isEmpty(openid)){
return AjaxResult.error("未获取openid");
}
String token = UUID.randomUUID().toString();
HashMap<String,Object> data = new HashMap<>();
data.put("token",token);
data.put("session_key",session_key);
data.put("openid",openid);
return AjaxResult.success(data);
}
这里需要的参数有三个
AppID(你的appid), AppSecret(小程序的), code(login获取到的)
上面的这段代码赋值下来能直接用
实际上就是通过我们后端发送一个get的请求带着参数,然后获取到他的返回值,前端用哪个,就把他返回去就可以了。