var pc = new WXBizDataCrypt(appid, session_key);
这段代码是使用微信官方提供的 WXBizDataCrypt 类来解密微信运动数据。
WXBizDataCrypt 是一个用于解密微信开放平台返回的加密数据的类,它需要传入两个参数:appid 和 session_key。其中,appid 是小程序的 AppID,session_key 是微信服务器返回的会话密钥。
在这段代码中,首先获取到了微信运动返回的加密数据(encryptedData)和初始向量(iv),然后创建了一个 WXBizDataCrypt 对象,将 appid 和 session_key 作为参数传入。最后,调用该对象的 decryptData 方法对加密数据进行解密,得到解密后的数据 data。
var DataCrypt = require('../../utils/DataCrypt.js');
Page({
/**
* 页面的初始数据
*/
data: {
stepInfoList: []
},
/*这段代码是使用微信小程序登录并获取用户步数的示例代码。
首先,调用 wx.login() 方法获取用户的登录凭证(code)。
然后,将 appid、secret 和 code 发送到微信服务器进行验证,获取 session_key。
接着,将 appid 和 session_key 作为参数传递给 getWeRunData() 方法,获取用户的步数信息。
最后,在控制台输出用户的步数信息。*/
onLoad: function(options) {
var that = this;
wx.login({
success: function(res) {
var appid = "你的appid";
var secret = "你的小程序密钥";
if (res.code) {
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appid + '&secret=' + secret + '&js_code=' + res.code + '&grant_type=authorization_code',
header: {
'content-type': 'json'
},
success: function(res) {
var session_key = res.data.session_key;
console.log("seccion_key:" + session_key);
that.getWeRunData(appid, session_key);
}
})
}
}
})
},
//获取encryptedData(没有解密的步数)和iv(加密算法的初始向量)
getWeRunData: function(appid, session_key) {
var that = this
wx.getSetting({
success: function(res) {
console.log(res);
if (!res.authSetting['scope.werun']) {
wx.authorize({
scope: 'scope.werun',
success: () => {
console.log("授权测试成功!!!")
}
})
wx.getWeRunData({
success: function(res) {
console.log(res);
var encryptedData = res.encryptedData;
var iv = res.iv;
var pc = new DataCrypt(appid, session_key);
console.log(pc);
var data = pc.decryptData(encryptedData, iv)
console.log("------" + data.stepInfoList[30].step)
that.setData({
stepInfoList: data.stepInfoList
})
},
fail: function(res) {
console.log("获取数据失败")
}
})
// wx.showModal
// ({
// title: '权限提示',
// content: '获取微信运动步数需要开启计步权限',
// success: function (res)
// {
// if (res.confirm) {
// //跳转去设置
// wx.openSetting({
// success: function (res)
// {
// console.log("authSetting:"+res.authSetting)
// }
// })
// }
// }
// })
} else {
wx.getWeRunData({
success: function(res) {
console.log(res);
var encryptedData = res.encryptedData;
var iv = res.iv;
var pc = new DataCrypt(appid, session_key);
console.log(pc);
var data = pc.decryptData(encryptedData, iv)
console.log("------" + data.stepInfoList[30].step)
that.setData({
stepInfoList: data.stepInfoList
})
},
fail: function(res) {
console.log("获取数据失败")
}
})
}
}
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
}
})
以上代码中的 “你的小程序密钥”这个在哪里获取
“你的小程序密钥”是指小程序的 AppSecret,可以在微信公众平台中获取。具体步骤如下:
1. 登录微信公众平台(https://mp.weixin.qq.com/);
2. 进入“开发”-“基本配置”;
3. 在“服务器配置”中可以看到 AppID 和 AppSecret;
4. 将 AppSecret 复制到代码中的 secret 变量中即可。
参考:
https://cloud.tencent.com/developer/article/2225439
https://blog.csdn.net/weixin_60046761/article/details/137227944
https://huaweicloud.csdn.net/64eea6836ffa502025761830.html