微信小程序获取手机号码看这篇文章就够了

时间:2024-01-25 09:31:18

前言

微信小程序获取手机号码,从官方文档到其他博主的文档 零零散散的 (我就是这样看过来 没有一篇满意的 也许是我搜索姿势不对) 依旧是前人栽树 后人乘凉 系列。保证看完 就可以实现获取手机号码功能

1.认证(有资格)

获取手机号码接口权限,只对认证的小程序开发(非个人)

 

 

2.身份牌

需要第三方服务端(你们的后端童鞋)的友情支持

  • 前端同学的工作
 // 登录 一定要在现在app.js 登陆(后面解密需要用到)
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        this.globalData.code =  res.code
        http.authCode2Session({ // 调用接口,传入参数 这个接口就是自家后台给你提供的 post请求
          data: {
            jsCode: res.code,
            grantType: \'getPhoneNumber\',
          },
          success: res => {
            this.globalData.openid = res.openid // 存入 globalData 
          },
          fail: err => {
            console.log(err)
          }
        })
      }
    })
  • 后端工作 (我不是后端 没有这个代码 但是根据小程序文档来做是可以的)

 

 

入口

拿到了openid sessionkey 之后,然后再写一个入口 button

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

回调

在页面写函数getPhoneNumber()

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

真机调试

开发工具是不可以的,真机调试 拿自己的手机调试一下

 

 

就是这样子的

解密

前端拿到的数据是加密的。只好后端做一个保存接口 传给后端,后端再去解密 才能真的拿到用户的手机号码

解密后的数据是这样子的

 

 

Fannie总结

应该是写的明明白白 清清楚楚了 如果你还不明白 就是我的锅 没有写清楚 那就来问我吧