网页手机号抓取程序(获取微信用户绑定的手机号1.getPhoneNumber组件通过button来实现)
优采云 发布时间: 2021-10-04 20:24网页手机号抓取程序(获取微信用户绑定的手机号1.getPhoneNumber组件通过button来实现)
获取微信用户绑定的手机号
1. getPhoneNumber 组件是通过按钮实现的(其他标签无效)。在按钮中设置open-type="getPhoneNumber",绑定bindgetphonenumber事件获取回调。
2.在使用该组件之前,必须调用登录接口。如果没有调用login,点击按钮时,会提示先调用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:加密算法的初始向量(如果用户不同意授权则未定义)。
encryptedData:用户信息的加密数据(如果用户不同意授权,也会返回undefined)
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. 用户同意授权,我们可以根据登录时得到的code通过后台和微信处理得到session_key,最后通过appid、sessionkey、iv、encryptedData(用户同意授权errMsg到返回'getPhoneNumber:好的')
Page({
getPhoneNumber: function(e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
}
})
6. 解密方法可以查看官方微信开发文档,有详细说明。
加密数据解密算法(官方文档)