首先我们需要下载一个解密文件
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html
放到本地目录 进行引入
import WXBizDataCrypt from '@/static/WXBizDataCrypt.js';
<button open-type="getPhoneNumber" @getphonenumber="onGetPhoneNumber">唤起授权</button>
onLoad() {
//通过wx.login 获取用户code
wx.login({
success: res => {
console.log('0');
if (res.code) {
//微信登录成功 已拿到code
this.jsCode = res.code; //保存获取到的code
uni.request({
//这步可以直接调取后端接口
url: 'https://api.weixin.qq.com/sns/jscode2session',
method: 'GET',
data: {
appid: '', //你的小程序的APPID
secret: '', //你的小程序的secret,
js_code: res.code //wx.login 登录成功后的code
},
success: cts => {
// 换取成功后 暂存这些数据 留作后续操作
this.openid = cts.data.openid; //openid 用户唯一标识
this.unionid = cts.data.unionid; //unionid 开放平台唯一标识
this.session_key = cts.data.session_key; //session_key 会话密钥
}
});
} else {
console.log('登录失败!' + res.errMsg);
}
}
});
},
methods: {
// 获取手机号
onGetPhoneNumber(e) {
let that = this;
if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
//用户决绝授权
//拒绝授权后弹出一些提示
} else {
//允许授权
let pc = new WXBizDataCrypt('wxXXXXXXX', that.session_key); //wxXXXXXXX为你的小程序APPID
let data = pc.decryptData(e.detail.encryptedData, e.detail.iv);
console.log(data); //data就是最终解密的用户信息
//后续操作。。。
}
}
}