网页抓取手机号(微信小程序文档中给出如下示例获取微信用户绑定的手机号)

优采云 发布时间: 2022-01-06 12:11

  网页抓取手机号(微信小程序文档中给出如下示例获取微信用户绑定的手机号)

  以下示例在微信小程序文档中给出

  获取微信用户绑定的手机号,需要先调用登录界面。

  因为用户需要主动触发手机号接口,所以这个函数不是API调用的,需要通过组件的点击来触发。

  注:此接口目前对已完成小程序认证的非个人开发者开放。请谨慎使用。如用户举报较多或被发现在不必要的场景中使用,微信有权永久撤销小程序的界面权限。

  指示

  组件open-type的值需要设置为getPhoneNumber。用户点击同意后,可以通过bindgetphonenumber事件回调获取微信服务器返回的加密数据,然后第三方服务器结合session_key和app_id进行解密,得到手机号码。

  注意

  在回调中调用 wx.login 登录可能会刷新登录状态。这时服务器使用code交换的sessionKey并不是加密时使用的sessionKey,导致解密失败。建议开发者提前登录;或者在回调中使用checkSession检查登录状态,防止登录刷新登录状态。

  例子

  Page({

getPhoneNumber: function(e) {

console.log(e.detail.errMsg)

console.log(e.detail.iv)

console.log(e.detail.encryptedData)

}

})

  返回参数说明

  

  {encryptedData 解密后为如下json结构,详见加密数据解密算法

   "phoneNumber": "13580006666",

"purePhoneNumber": "13580006666",

"countryCode": "86",

"watermark":

{

"appid":"APPID",

"timestamp":TIMESTAMP

}

}

  但在这里你会发现,它并不详尽,尤其是解密和错误代码。

  首先,如手册所述,我不太了解加密数据包的解析。我会为你发布一个例子。

  getPhoneNumber: function (e) {

console.log(e.detail.iv);

console.log(e.detail.encryptedData);

wx.login({

success: res => {

console.log(res.code);

wx.request({

url: 'https://你的解密地址',

data: {

'encryptedData': encodeURIComponent(e.detail.encryptedData),

'iv': e.detail.iv,

'code': res.code

},

method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

header: {

'content-type':'application/json'

}, // 设置请求的 header

success: function (res) {

if (res.status ==1) {//我后台设置的返回值为1是正确

//存入缓存即可

wx.setStorageSync('phone', res.phone);

}

},

fail: function (err) {

console.log(err);

}

})

}

})

}

  后台解析代码就是利用传入的三个值来分析每种语言。解析方法不同。请下载样本

  微信官方提供多种编程语言的示例代码(点击下载)。每种语言类型的接口名称都相同。调用方法可参考示例。

  注意解析方法和解析用户信息是一样的!!!!

  编辑器在这里遇到了一个问题,虽然解析回来的形式和文档是一样的!

  但是数据看起来是这样的:

  

  这种情况其实是开发的基础库版本库太低造成的

  配置位置在这里:

  

  编辑器修改为v1.9.1后,呈现形式与官网手册相同

  {

"phoneNumber": "13580006666",

"purePhoneNumber": "13580006666",

"countryCode": "86",

"watermark":

{

"appid":"APPID",

"timestamp":TIMESTAMP

}

}

  至此,微信绑定用户的手机号获取完成!

  还有一点要注意,你的开发版本已经up了,但是用户可能没有更新

  所以微信后台就有这样的配置~

  

  剩下的问题欢迎下方评论。第一次写博客,希望对大家有帮助!!!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线