位置:首页 > 小程序 >

小程序获取用户手机号操作代码示例

字号+ 作者:micloud 来源:www.seoalphas.com 2019-03-21 11:29 浏览量:9348

小程序获取手机号操作,获取微信用户绑定的手机号,需先调用wx.login接口。因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发,也就是用户主动点击按钮后,会有弹窗提示是否授权获取手机号。

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


使用方法

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

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>

js处理代码:


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

注意

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


当用户点击获取手机号按钮后,会触发getPhoneNumber()方法,小程序根据用户是否允许获取,返回不同的数据。若用户允许,返回的数据为:

getPhoneNumber:ok
c6u1J5ceq7T/+Zfia2g1sw==
9BUI4wsZpxelxuYIzpFAFQyZiqQFd3/ap9DAzHKhFAXGGTME2xjVI3Gpb5BvLVpl9vx4bwW2elI7fyGinn0vwufuF5NP8BMWZ7wAwX4hShxWwkPvfxUrSTlTy+nlzEs5Ps50S5hTaenudQH3vVprL/yzLYQYf7Pq85JHUCOUmc21zB/+hcdoBGr6Reu+rvo1GWh1vWf8aEYRT60rlLvcvw==

返回参数说明:

参数 类型 说明
encryptedData String 包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法
iv String 加密算法的初始向量,详细见加密数据解密算法


此时的encryptedData为加密的数据,需要进行解密后才能获取用户完整的手机号。解密后的数据格式为:

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

若用户拒绝,返回数据为:

getPhoneNumber:fail user deny
undefined
undefined


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • wx.canIUse(String)-判断小程序的API,回调,参数,组件等是否在当前版本可用

    wx.canIUse(String)-判断小程序的API,回调,参数,组件等是否在当前版本可用

    浏览次数:21487

  • 小程序view内容不换行

    小程序view内容不换行

    浏览次数:12860

  • 小程序不存在页面处理 即404页面

    小程序不存在页面处理 即404页面

    浏览次数:9151

  • 微信小程序获取定位时预览报错,真机调试和开发者工具中正常的问题

    微信小程序获取定位时预览报错,真机调试和开发者工具中正常的问题

    浏览次数:7477

网友点评
评论区域