小程序获取手机号完整流程 弹出框获取电话号码

发布于:2025-09-11 ⋅ 阅读:(20) ⋅ 点赞:(0)

小程序获取手机号完整流程 弹出框获取电话号码

1️⃣ 前提条件
- 使用微信小程序
- 小程序已注册并通过审核
- 后端可存储 session_key

2️⃣ 小程序端按钮
<button 
  type="default" 
  open-type="getPhoneNumber" 
  @getphonenumber="decryptPhoneNumber"
>
  获取手机号
</button>

3️⃣ 点击按钮事件处理
decryptPhoneNumber(event) {
  if (event.detail.errMsg === 'getPhoneNumber:ok') {
    const { encryptedData, iv } = event.detail;
    // 发送给后端解密
  } else {
    console.log('用户拒绝授权手机号');
  }
}

4️⃣ 前端请求后端解密
wx.request({
  url: '/api/decrypt-phone',
  method: 'POST',
  data: { encryptedData, iv },
  success(res) {
    console.log('手机号绑定成功:', res.data.phoneNumber);
  }
})

5️⃣ 后端解密流程(Node.js 示例)
const crypto = require('crypto');

function decryptPhoneData(encryptedData, iv, sessionKey) {
  const decipher = crypto.createDecipheriv(
    'aes-128-cbc',
    Buffer.from(sessionKey, 'base64'),
    Buffer.from(iv, 'base64')
  );
  decipher.setAutoPadding(true);
  let decoded = decipher.update(encryptedData, 'base64', 'utf8');
  decoded += decipher.final('utf8');
  return JSON.parse(decoded);
}

6️⃣ 前端显示手机号
this.phoneNumber = res.data.phoneNumber;
console.log('绑定的手机号:', this.phoneNumber);

7️⃣ 全流程概览
点击按钮 -> 弹窗授权 -> 前端获取 encryptedData + iv
-> 发送给后端 -> 后端解密 -> 返回真实手机号
-> 前端显示


网站公告

今日签到

点亮在社区的每一天
去签到