您好,小程序模板欢迎您。
小程序模板
当前位置 : 首页> 小程序教程> 如何在微信小程序中获取用户手机号?

如何在微信小程序中获取用户手机号?

在微信小程序中获取用户手机号,需要先让用户授权手机号。授权获取手机号可以使用微信官方提供的 wx.login() 和 wx.getUserInfo() API,具体实现步骤如下:


1. 在 app.json 文件中添加 "permission" 字段,用于声明需要获取的用户授权信息。

{
  "permission": {
    "scope.userLocation": {
      "desc": "获取你的手机号码用于登录"
    }
  }
}


2. 在页面中调用 wx.login() API,获取用户的 code

wx.login({
  success: res => {
    const code = res.code
    // 将 code 发送给后端服务器,用于获取 session_key 和 openid
  }
})


3. 在页面中调用 wx.getUserInfo() API,获取用户的加密数据和签名等信息。

wx.getUserInfo({
  success: res => {
    const encryptedData = res.encryptedData
    const iv = res.iv
    const signature = res.signature
    const rawData = res.rawData
    // 将加密数据和签名等信息发送给后端服务器,用于解密获取用户手机号
  }
})


4. 后端服务器使用 session_key、encryptedData 和 iv 等信息对用户手机号进行解密。

const sessionKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
const encryptedData = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
const iv = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

const crypto = require('crypto')
const decipher = crypto.createDecipheriv('aes-128-cbc', Buffer.from(sessionKey, 'base64'), Buffer.from(iv, 'base64'))
let decryptedData = decipher.update(Buffer.from(encryptedData, 'base64'))
decryptedData = Buffer.concat([decryptedData, decipher.final()])
decryptedData = decryptedData.toString()

console.log(decryptedData)
// 输出用户手机号


以上代码即可获取用户手机号,具体实现需要根据自己的业务需求进行调整。

联系客服 意见反馈

签到成功!

已连续签到1天,签到3天将获得积分VIP1天

知道了