微信小程序> 微信小程序中,如何获取微信绑定的手机号

微信小程序中,如何获取微信绑定的手机号

浏览量:1061 时间: 来源:秋9

获取手机号

获取微信用户绑定的手机号,需先调用wx.login接口。

因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发。

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

接口调用流程大致如下:

使用方法

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

注意

在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。

代码示例

button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"/button
Page({  getPhoneNumber (e) {    console.log(e.detail.errMsg)    console.log(e.detail.iv)    console.log(e.detail.encryptedData)  }})

返回参数说明

参数类型说明最低版本
encryptedDataString包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法 
ivString加密算法的初始向量,详细见加密数据解密算法 
cloudIDString敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据2.8.0

敏感数据有两种获取方式,一是使用 加密数据解密算法 将 encryptedData 在开发者后台解密,二是使用云调用直接通过 cloudID 获取开放数据。

获取得到的开放数据为以下 json 结构:

{    "phoneNumber": "13580006666",    "purePhoneNumber": "13580006666",    "countryCode": "86",    "watermark":    {        "appid":"APPID",        "timestamp": TIMESTAMP    }}
参数类型说明
phoneNumberString用户绑定的手机号(国外手机号会有区号)
purePhoneNumberString没有区号的手机号
countryCodeString区号

 

后续我把java后端代码和小程序前端代码,分享给大家。

 

官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html 

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎