微信小程序获取手机号流程
小程序中获取手机号前提
小程序需企业认证,才可以获取用户的手机号,个人开发者是不能获取的
哔哔下
官方文档给出需先登录才可获取手机号 传送门
思路为:login登录获取code–>code传给后台–>后台根据code获取sessionKey
前台通过触发获取手机号事件得到加密数据–>传给后台,后台通过之前获取的
sessionKey来解密,并将数据返回给前台
注意项
code传给后台时后台需去访问官网给的接口去检验 传送门
撸码
getPhoneNumber: function (e) {
let _this = this;
if (e.detail.errMsg == "getPhoneNumber:ok") {
//校验是否过期
wx.checkSession({
success: function () {
// session_key 未过期,并且在本生命周期一直有效
_this.gettel(e);//获取手机号
},
fail: function () {
// session_key 已经失效,需要重新执行登录流程
wx.login({
success: function (res) {
wx.request({
url: \'xxxxxx\',
method: \'post\',
data: {
code: res.code
},
header: {
\'Content-Type\': \'application/x-www-form-urlencoded\'
},
success: function (r) {
_this.gettel(e);//获取手机号
},
fail: function (err) {
console.log("登录失败");
console.log(err);
}
})
}
})
}
})
} else {
wx.showModal({
title: \'提示\',
content: \'需获取信息才可查看历史预约\',
})
}
},
gettel: function (e) {
let _this = this;
let iv = e.detail.iv;
let encryptedData = e.detail.encryptedData;
wx.request({
url: \'xxxxxxxxxxxxxxxx\',
method: \'post\',
data: {
iv: iv,
encryptedData: encryptedData
},
header: {
\'Content-Type\': \'application/x-www-form-urlencoded\'
},
success: function (res) {
console.log(res);//手机号在这里面哦
<!--let item = JSON.parse(res.data.data);-->
},
fail: function (err) {
console.log(err);
}
})
}
在哔哔下
wx.login首次登录我写在需要获取手机号时的page中onload事件中
因为login返回的code有时效,所以在需要的时候在调用
版权声明:本文为ybchen292原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。