微信小程序获取用户手机号及解密

编程入门 行业动态 更新时间:2024-10-23 16:24:35

微信小程序获取用户<a href=https://www.elefans.com/category/jswz/34/1770077.html style=手机号及解密"/>

微信小程序获取用户手机号及解密

要获取用户手机号,首先需要用户同意授权其手机号给小程序。可以使用wx.login()获取用户的code,然后调用wx.request()向微信服务器发起请求,获取到session_key和encryptedData等信息,再进行解密。

获取流程如下:

  1. 先调用wx.login()获取用户的code。

  2. 在小程序后台配置开发者服务器域名,在小程序中使用wx.request()向服务器发起请求,获取session_key和encryptedData等信息。

  3. 在服务器端进行解密,可以使用第三方库crypto-js来解密。

  4. 解密后即可获取用户手机号。

示例代码:

在前端调用:

wx.login({success: res => {// 发送 res.code 到后台换取 openId, sessionKey, unionIdwx.request({url: '',data: {code: res.code,encryptedData: res.encryptedData,iv: res.iv},success: function (res) {console.log(res.data.phoneNumber);}})}
})

在后端解密:

const crypto = require('crypto-js');function decodePhoneNumber(sessionKey, encryptedData, iv) {const sessionKeyBuffer = new Buffer(sessionKey, 'base64');const encryptedDataBuffer = new Buffer(encryptedData, 'base64');const ivBuffer = new Buffer(iv, 'base64');const decipher = crypto.createDecipheriv('aes-128-cbc', sessionKeyBuffer, ivBuffer);decipher.setAutoPadding(true);let decoded = decipher.update(encryptedDataBuffer, 'binary', 'utf8');decoded += decipher.final('utf8');decoded = JSON.parse(decoded);if (decoded.watermark.appid !== APPID) {throw new Error('Invalid appId');}return decoded;
}

更多推荐

微信小程序获取用户手机号及解密

本文发布于:2023-12-03 20:53:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657532.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:手机号   程序   用户   微信小

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!