700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 微信小程序获取微信绑定授权手机号

微信小程序获取微信绑定授权手机号

时间:2019-01-13 22:03:13

相关推荐

微信小程序获取微信绑定授权手机号

方法:

1、使用<button>组件,并将该组件的open-type的属性值设置为getPhoneNumber,绑定bindgetphonenumber事件

2、当用户点击允许时,可以通过绑定事件的回调获取到微信服务返回的加密数据

3、调用login接口,获取到用户的code

4、将获取手机号事件返回的加密数据结合sessionkey、appid以及login接口返回的code传给后端提供的接口进行解密获取手机号。

示例:

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> </button>Page({getPhoneNumber: function(e) {console.log(e.detail.errMsg) console.log(e.detail.iv) console.log(e.detail.encryptedData) } })

返回参数说明:

encryptedData(String):包括敏感数据在内的完整用户信息的加密数据iv(String):加密算法的初始向量errMsg(String):信息

敏感数据的获取大多都是将以上返回的除errMsg之外参数以及code传给后端提供的接口,由后端进行解密后返回解密后的数据,获取到的解密数据如下:

{"code":200,"phoneNumber": "xxxxx", "purePhoneNumber": "xxxxx", "countryCode": "86","msg": "请求成功","time": "1590486884","watermark":{"appid":"APPID","timestamp":"1590486884"}}

具体示例:

getPhoneNumber: function (e) {console.log(e.detail.iv);console.log(e.detail.encryptedData);wx.login({success: res => {console.log(res.code);if(res.code){wx.request({url: '解密地址',data: {'encryptedData': encodeURIComponent(e.detail.encryptedData),'iv': e.detail.iv,'code': res.code},method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECTheader: {'content-type':'application/json'}, // 设置请求的 headersuccess: function (res) {if (res.status == 200 ) {//我后台设置的返回值为200时为成功//do something}},fail: function (err) {//do something}})}}})}

在用户允许获取手机号之后,有时还会调用checkSession接口来判断用户是否是在登录状态下允许获取手机号。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。