头图

大家好我是咕噜美乐蒂,很高兴又和大家见面了!
在微信小程序中,针对微信基础库新旧不同版本,获取用户手机号的方法略有不同。我将分别介绍新旧版本的获取用户手机号方法:
新版本(基础库 2.10.0 及以上)

  1. 需要用户授权
    步骤:用户首次点击获取手机号的按钮时,系统会弹出授权窗口,用户需要确认授权才能获取手机号。
    代码示例:
    javascript
    wx.login({
    success: (res) => {
    if (res.code) {
    wx.request({

     url: 'https://api.weixin.qq.com/sns/jscode2session',
     data: {
       js_code: res.code,
       grant_type: 'authorization_code'
     },
     success: (res) => {
       let openid = res.data.openid;
       let sessionKey = res.data.session_key;
       // 这里可以根据后台返回的数据再进行相应的操作
     }

    });
    } else {
    console.log('登录失败!' + res.errMsg);
    }
    }
    });

  2. 解密手机号
    代码示例:
    javascript
    wx.getUserInfo({
    success: (res) => {
    wx.request({
    url: 'https://yourdomain.com/decryptPhone',
    method: 'POST',
    data: {

     encryptedData: res.encryptedData,
     iv: res.iv,
     sessionKey: sessionKey  // 上一步获取的 sessionKey

    },
    success: (res) => {

     console.log(res.data.phoneNumber);

    }
    });
    }
    });
    旧版本(基础库低于 2.10.0)

  3. 官方接口获取手机号
    代码示例:
    javascript
    wx.getPhoneNumber({
    success: (res) => {
    console.log(res.detail.encryptedData); // 获取加密信息
    console.log(res.detail.iv); // 获取加密算法的初始向量
    }
    });
  4. 解密手机号
    代码示例:
    javascript
    wx.request({
    url: 'https://yourdomain.com/decryptPhone',
    method: 'POST',
    data: {
    encryptedData: res.detail.encryptedData,
    iv: res.detail.iv,
    sessionKey: sessionKey // 旧版本需提前获取 sessionKey
    },
    success: (res) => {
    console.log(res.data.phoneNumber);
    }
    });
    注意事项
    在获取用户手机号之前,需要先获取用户的登录凭证 code,再通过解密算法获取手机号。
    后端服务器需配合前端进行解密,具体解密算法可参考微信官方文档提供的示例代码。
    以上是针对微信小程序中新旧版本获取用户手机号的方法,具体实现方式可能根据项目需求和后端逻辑有所不同。如果您有任何进一步的问题或需要更多帮助,请随时告诉我。

咕噜分发美乐蒂
1 声望0 粉丝