頁面增加一個按鈕
<button type="default" open-type="getUserInfo" @click="getUserInfo">UserInfo</button>
前端解密
安裝 crypto-js
npm install crypto-js
下載 WXBizDataCrypt.js 文件
WXBizDataCrypt.js微信官方下載地址
打開Node文件夾,把 WXBizDataCrypt.js 文件放入你的項目中。(比如我是放在我的common文件夾下)
在需要解密的頁面引用該文件
import WXBizDataCrypt from "@/common/WXBizDataCrypt.js"; //請以你的實際地址為准
具體代碼如下,關鍵位置請看注釋
data() { return { Code: '', openid: '', session_key: '' } },
getUserInfo() { //登錄 uni.login({ provider: 'weixin', success: res => { // console.log('登錄成功:', res); //獲取臨時登錄憑證code this.Code = res.code; //獲取openid,session_key let appid = "wxce185cd1da123456" //需替換 let secret = "25d0fe7478355910fc143ce6b1234567" //需替換 let url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appid + '&secret=' + secret + '&js_code=' + this.Code + '&grant_type=authorization_code'; uni.request({ url: url, // 請求路徑 success: res => { // console.log('openid session_key:', res.data); this.openid = res.data.openid this.session_key = res.data.session_key //獲取用戶信息 uni.getUserInfo({ provider: 'weixin', success: res => { console.log('獲取用戶信息', res); //解密encryptedData,可獲取用戶openId let pc = new WXBizDataCrypt(appid, this.session_key); let data = pc.decryptData(res.encryptedData, res.iv); console.log('解密后:',data) }, fail: err => { console.log('獲取用戶信息錯誤:', err) } }) }, fail: err => { console.log('請求失敗:',err) } }); }, fail: err => { console.log('登錄失敗:', err) } }) },

