网页手机号抓取程序(2018年9月27日星期四使用方法(图) )
优采云 发布时间: 2021-12-17 08:33网页手机号抓取程序(2018年9月27日星期四使用方法(图)
)
2018年9月27日,星期四
小程序获取用户的手机号码并登录
使用方法
您需要将组件打开类型的值设置为getphonenumber。用户点击并同意后,您可以通过bindetphonenumber事件回调获取微信服务器返回的加密数据,然后将会话与第三方服务器密钥和app解密ID结合,获得手机号码
打开type=“getPhoneNumber”bindgetphonenumber=“getPhoneNumber”>
注:要获取微信用户绑定的手机号码,需要先调用登录界面
在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免login 刷新登录态。
通过bindetphonenumber绑定的事件获取回调。回调有三个参数
Errmsg:用户单击取消或授权信息回调
IV:加密算法初始向量(如果用户不同意授权,则未定义)
Encrypteddata:用户信息的加密数据(如果用户不同意授权,则返回未定义)
解密后,加密的数据是以下JSON结构
//应用程序。js
App({
onLaunch: function () {
// 登录
wx.login({
success: function (res) {
var code = res.code;
wx.request({
url: 'https://*****.com',
method: 'POST',
data: {
js_code: code
}, //传递后台code值
header: {
'Accept': "*/*"
},
success: function (res) {
var wechat = {
openid: res.data.openid,
thirdkey: res.data.session_key
}
wx.setStorage({ //返回openid session_key 本地缓存
key: 'wechat',
data: wechat
})
}
})
},
fail: function (res) {
console.log("登陆失败")
}
})
}
})
//登录。js
getPhoneNumber: function (e) {
var that = this;
// 拒绝授权
if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
wx.showModal({
title: '提示',
showCancel: false,
content: '未授权您将无法登陆',
success: function (res) { }
})
} else {
// 接受授权
wx.getStorage({
key: 'wechat',
success: function (res) {
var openid = res.data.openid; //openid
var thirdkey = res.data.thirdkey; //session_key
wx.request({
url: 'https://www.*****.com',
method: 'POST',
data: {
encryptedData: e.detail.encryptedData,
iv: e.detail.iv,
openid: openid,
thirdkey: thirdkey
},
header: {'Accept': "*/*"},
success: function (res) {
console.log("提交到服务器成功了~~~~手机号登录")
console.log(res.data)
},
fail: function (res) {
console.log("提交到服务器失败了")
}
})//end of wx.request
}
})
}
}