1.首选需要下载解密的文件(WXBizDataCrypt)
到微信官方地址服务端获取开放数据 | 微信开放文档
配置完后见代码流程:
getPhoneNumber(e) {
// 获取用户点击授权后的信息
// console.log(e.detail, 'e')
// 根据你的需求处理获取到的手机号信息
if (e.detail.errMsg == 'getPhoneNumber:ok') {
// 用户同意授权,拿到code去获取手机号
uni.login({
success: (res) => {
uni.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',
method: 'GET',
data: {
appid: '', //你的小程序的APPID
secret: '', //你的小程序的secret密钥,
js_code: res.code, //wx.login 登录成功后的code
grant_type: 'authorization_code',
},
success: (cts) => {
console.log(cts, 'session_key信息');
//对手机号授权的信息进行解密拿到手机号
// 将 encryptedData 和 iv 发送到后端进行解密,获取用户手机号
// 注意:解密的逻辑需要在服务端实现
// 这里仅是演示,实际开发中请确保数据传输安全性
let pc = new WXBizDataCrypt('小程序appid', cts.data
.session_key)
let data = pc.decryptData(e.detail.encryptedData, e.detail.iv)
console.log('解密后的手机号码信息', data);
}
});
}
})
} else {
// 用户拒绝授权或其他错误处理
console.log('用户拒绝授权或发生错误', e.detail.errMsg);
}
解密后的数据里面有授权的手机号信息: