微信小程序中获取用户的唯一标识openid,用于做业务判断处理
Acmen-zym 时间:2022-08-14
我是小程序加载时就调用,执行顺序如下:
1、进入小程序时会调用onLoad,onLoad函数是监听页面加载的;
2、在onLoad引用wx.login,获取一个临时访问code,当前code有效时间为5分钟,并且只能使用一次;
3、将code传入后端,在后端访问https://api.weixin.qq.com/sns/jscode2session?appid=APP_ID&secret=SECRET&js_code=code&grant_type=authorization_code链接,获取openId并且关联用户;
onLoad: function (options) { var tempThis = this; wx.login({ success: function (res) { wx.request({ url: 'https://127.0.0.1/student/getStudentJointInfo', //接口地址 data: { wxId: res.code },//res.code就是当前调用wx.login生成的,有效时间5分钟 success: function (d) { if (d.data == null || d.data == "") { tempThis.setData({ hiddenmodalput: false, wxId: res.code });//意味着没有关联需要进行关联 console.log(d.data); } else { tempThis.setData({ phoneNum: d.data, wxId: res.code });//意味着没有关联需要进行关联 } } }); } }); },
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
后端访问代码
public static String getOpenId(String wxId) { String url = new StringBuilder("https://api.weixin.qq.com/sns/jscode2session?appid=").append(APP_ID) .append("&secret=").append(SECRET) .append("&js_code=").append(wxId).append("&grant_type=authorization_code").toString(); String body = OkHttpClientUtil.getBody(url, 8L, new HashMap<>()); JSONObject jsonObject = JSONObject.fromObject(body); if (!jsonObject.containsKey("openid")) return null; return jsonObject.getString("openid"); }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。