微信小程序用户手机号授权获取

要想成功获取微信小程序手机号,应该先明确:

一、明确微信小程序规则

1.现微信规定不能在onLoad,onShow这类页面触发函数中直接获取

2.只能通过用户行为触发,比如点击某个按钮

二、获取手机号的流程

1.公众平台获取appId与secret

2.结合手机号按钮及其事件绑定,获取 code

3.调用接口获取 access_token

4.根据 code 与 access_token 获取手机号

根据以上步骤, 我们直接从第二步开始:

1.此处的code是需要先写一个官方提供的特殊的按钮:

然后在js中写上改按钮绑定的函数getPhoneNumber,根据以下写法获取code:

2.调用

`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appId}&secret=${secret}`

查询参数:grant_type=client_credential&appid=yourAppid&secret=yourSecret

注意:这里的grant_type=client_credential固定写法,appid和secret是微信公众平台查的。

示例:

3.调用

`https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=${access_token}`

查询参数:access_token 直接使用上一步获取到的即可。

请求体数据:code 在按钮事件绑定的函数getPhoneNubmer中e.detail.code获取得到。

示例:

完整代码演示:

 //绑定手机
 getPhoneNumber: function (e) {
  console.log(e);
  const code = e.detail.code
  wx.request({
    url: `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appId}&secret=${secret}`,
    method: 'GET',
    success:res=>{
      if(res.statusCode!==200) return
      const access_token = res.data.access_token
      wx.request({
        url: `https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=${access_token}`,
        method: 'POST',
        data: {
          code
        },
        success:data=>{
          if(data.statusCode!==200) return
          const { phoneNumber } = data.data.phone_info // 这里就是获取到的手机号
        }
      })
    }
  })
},

通过以上步骤,就可以实现点击按钮弹出手机号获取授权,点击确认即可获取到用户的手机号了~

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值