微信小程序获取用户所绑定的手机号:
大概逻辑:首先要进行wx.login进行授权登录,登录后获取encryptedData、iv、openid、session_key;然后将这些参数传送给,后台接受到参数后用参数进行解密,最终返回给前台;
授权时需要通过button进行点击授权;
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">确认</button>
js:这里我写成了一个方法,在登录后会判断下当前用户是否授权手机号,然后调取;具体的可以根据项目中的获取需求进行调用;
getPhoneNumber(e) {
var That = this;
var data = {
encryptedData: e.detail.encryptedData,
iv: e.detail.iv,
openid: That.data.openid,
session_key: That.data.session_key
}
if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
wx.showToast({
title: '授权失败,请重新授权',
icon: 'none',
duration: 2000
})
}else{
wx.showLoading({
title: '授权中',
mask: true
});
That.setData({
getNumber:false,
});
wx.request({
method: "GET",
url: api.getNumber,
data:data,
header: {
'content-type': 'application/json'
},
success:function(res){
var phoneNum = res.data;
// 隐藏授权框
wx.hideLoading()
// 存储手机号到本地
wx.setStorage({
key: 'phone',
data: phoneNum
})
//提示用户授权成功
wx.showToast({
title: '授权成功',
icon: 'success',
duration: 2000
})
},
fail:function(res){
console.log(res)
}
})
}
},