小程序获取用户手机号
一、获取微信用户绑定的手机号,需先调用login接口
wx.login 成功回调后拿到code,携带参数 code 发送 post 请求到后台拿到openid和session_key
var that = this;
wx.login({
success(res) {
console.log(res);
var code = res.code
wx.request({
url: 'http://localhost/index/users/login',
method: "post",
data: {
code
},
success: function (res) {
console.log(res.data.openid);
that.setData(res.data);
}
})
}
})
返回成功示例 保存返回的openid、session_key
二、<button open-type=“getPhoneNumber” bindgetphonenumber=“getPhoneNumber”>
需要将< button >组件open-type的值设置为getPhoneNumber,当用户点击并同意之后,可以通过bindgetphonenumber事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合session_key以及app_id进行解密获取手机号。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | getPhoneNumber: function (e) { var that = this ; console.log(e.detail.errMsg == "getPhoneNumber:ok" ); if (e.detail.errMsg == "getPhoneNumber:ok" ) { wx.request({ url: 'http://localhost/index/users/decodePhone' , data: { encryptedData: e.detail.encryptedData, iv: e.detail.iv, sessionKey: that.data.session_key, openid: openid, }, method: "post" , success: function (res) { console.log(res); } }) } }, |
1、可以打印出 自己是否允许授权 console.log(e.detail.errMsg == "getPhoneNumber:ok");
iv:加密算法的初始向量(如果用户没有同意授权则为undefined)。
encryptedData: 用户信息的加密数据(如果用户没有同意授权同样返回undefined)
2、如果为 true 就开始 post 请求后台 携带上 encryptedData 、iv 、sessionKey 、uid
3、打印出成功的回调函数 success: function (res) {console.log(res);} 可以看到里面有了~phoneNumber 手机号了
本文作者:流弊的小涛
本文链接:https://www.cnblogs.com/crazy-rock/p/16010643.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步