微信小程序中有许多地方需要用户注册用户信息的地方,用户需要填写手机号等,下面小编给大家分享微信小程序获取手机号授权用户登录功能,需要的朋友参考下吧
小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写。
1.getPhoneNumber这个组件通过button来实现(别的标签无效)。将button中的open-type=“getPhoneNumber”,并且绑定bindgetphonenumber事件获取回调。
1
|
<span style=
"font-size:14px;"
><button open-type=
"getPhoneNumber"
bindgetphonenumber=
"getPhoneNumber"
></button></span>
|
2.在使用这个组件之前必须先调用login接口,如果没有调用login点击button时会提示先调用login。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
App({
onLaunch:
function
() {
wx.login({
success:
function
(res) {
if
(res.code) {
//发起网络请求
console.log(res.code)
}
else
{
console.log(
'获取用户登录态失败!'
+ res.errMsg)
}
}
});
}
})
|
3.通过bindgetphonenumber绑定的事件来获取回调。回调的参数有三个,
errMsg:用户点击取消或授权的信息回调。
iv:加密算法的初始向量(如果用户没有同意授权则为undefined)。
encryptedData: 用户信息的加密数据(如果用户没有同意授权同样返回undefined)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
getPhoneNumber:
function
(e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
if
(e.detail.errMsg ==
'getPhoneNumber:fail user deny'
){
wx.showModal({
title:
'提示'
,
showCancel:
false
,
content:
'未授权'
,
success:
function
(res) { }
})
}
else
{
wx.showModal({
title:
'提示'
,
showCancel:
false
,
content:
'同意授权'
,
success:
function
(res) { }
})
}
}
|
4.最后我们需要根据自己的业务逻辑来进行处理,如果用户不同意授权的话可能我们会有一个让他手动输入的界面,如果不是强制获取手机号的话可以直接跳转页面进行下一步。(用户不同意授权errMsg返回‘getPhoneNumber:fail user deny')
5.用户同意授权,我们可以根据login时获取到的code来通过后台以及微信处理拿到session_key,最后通过app_id,session_key,iv,encryptedData(用户同意授权errMsg返回‘getPhoneNumber:ok')