1、用户点击按钮,在小程序中触发getuserinfo方法,获取用户信息
去完成
2、在uniapp项目中,新建getStep方法,获取获取session_key,用来解密必须用到的
getStep() { var that = this; wx.login({ success: function(res) { var appid = "wxeeb60e09bc7e8059"; var secret = "dfadcd1e92a2c35488e340c7e39a63b7"; 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; that.getStepInfo(appid, session_key); } }) } } }) }
3、获取encryptedData和iv,就是一些,微信步数加密后的数据
//获取encryptedData(没有解密的步数)和iv(加密算法的初始向量) getStepInfo: function(appid, session_key) { wx.getSetting({ success: function(res) { console.log(res); // 未开启微信运动授权 if (!res.authSetting['scope.werun']) { wx.showModal({ title: '提示', content: '获取微信运动步数,需要开启计步权限', success: function(res) { if (res.confirm) { //跳转去设置 wx.openSetting({ success: function(res) {} }) } else { //不设置 } } }) } else { wx.getWeRunData({ success: function(res) { // console.log(res); // console.log("appid:" + appid + "session_key:" + session_key + "encryptedData:" + res.encryptedData + "iv:" + res.iv); var encryptedData = res.encryptedData; var iv = res.iv; var pc = new WXBizDataCrypt(appid, session_key); vAR Data = pc.decryptData(encryptedData, iv) console.log(data.stepInfoList[30].step) }, fail: function(res) { wx.showModal({ title: '提示', content: '开发者未开通微信运动,请关注“微信运动”公众号后重试', showCancel: false, confirmText: '知道了' }) } }) } } }) }
4、其中用到了**[开放能力 /用户信息 /开放数据校验与解密]
官方文档
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html
可以先了解一下,然后下载对应的解密文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/a9dbc3ffbb8a48479369619eb7a780cc.png
找到对应的解密语言版本,老师这里用的uniapp,只能选择node版
这里有具体的案例,可以参考一下,直接在代码中导入,在上面的getStepInfo方法中直接实例化,即可直接使用