微信小程序如何通过用户授权获取手机号(getPhoneNumber)

本文详细介绍了如何在微信小程序中利用getPhoneNumber API获取用户已绑定的手机号,包括所需参数配置、login流程以及用户拒绝授权的处理。重点在于演示实际操作和关键代码片段。

小程序有一个获取用户很便捷的api,就是通过getPhoneNumber获取用户的已经绑定微信的手机号码。有一点要大家注意,现在微信和注重用户体验,有些方法都是需要用户主动去触发才能调用的,比如getPhoneNumber。

官方文档:手机号快速验证组件 | 微信开放文档

实现思路:

直接上干货:

1、

1

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

2、JS内getPhoneNumbe组件函数(该事件中最重要的就是在wx.login登录后发起接口请求),这里需要配置参数来给接口:

这些是必不可少的参数,这些齐备才能算一个合法的请求。

appid: “你的小程序APPID”,

secret: “你的小程序appsecret”,

code: res.code,

encryptedData: telObj,

iv: ivObj

最终结果展示:

//通过绑定手机号登录

  getPhoneNumber: function (e) {

   var ivObj = e.detail.iv

   var telObj = e.detail.encryptedData

   var codeObj = "";

   var that = this;

   //------执行Login---------

   wx.login({

    success: res => {

     console.log('code转换', res.code);

  

      //用code传给服务器调换session_key

     wx.request({

      url: 'https://你的接口文件路径', //接口地址

      data: {

       appid: "你的小程序APPID",

       secret: "你的小程序appsecret",

       code: res.code,

       encryptedData: telObj,

       iv: ivObj

      },

      success: function (res) {

       phoneObj = res.data.phoneNumber;

       console.log("手机号=", phoneObj)

       wx.setStorage({  //存储数据并准备发送给下一页使用

        key: "phoneObj",

        data: res.data.phoneNumber,

       })

      }

     })

  

     //-----------------是否授权,授权通过进入主页面,授权拒绝则停留在登陆界面

     if (e.detail.errMsg == 'getPhoneNumber:user deny') { //用户点击拒绝

      wx.navigateTo({

       url: '../index/index',

      })

     } else { //允许授权执行跳转

      wx.navigateTo({

       url: '../test/test',

      })

     }

    }

   });

},


点击"拒绝",开发者能捕捉到该事件 ,此时getPhoneNumber 函数返回 e.detail.errMsg 为 getPhoneNumber:user deny

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值