微信小程序获取微信用户绑定的手机号

获取微信用户绑定的手机号

1.getPhoneNumber这个组件通过button来实现(别的标签无效)。将button中的open-type=“getPhoneNumber”,并且绑定bindgetphonenumber事件获取回调。


2.在使用这个组件之前必须先调用login接口,如果没有调用login点击button时会提示先调用login。

注意:目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限。

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张图片

 

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,最后通过appid,sessionkey,iv,encryptedData(用户同意授权errMsg返回‘getPhoneNumber:ok’)

Page({ 
    getPhoneNumber: function(e) { 
		console.log(e.detail.errMsg) 
		console.log(e.detail.iv) 
		console.log(e.detail.encryptedData) 
	} 
}) 

6.解密的方法可以去微信官方开发文档查看,有很详细说明。

加密数据解密算法(官方文档)

你可能感兴趣的:(JavaScript,微信小程序,小程序)