微信小程序开发之--获取微信运动步数的实例代码
白羽 2018-08-09 来源 :网络 阅读 2254 评论 0

摘要:本文将带你了解微信小程序开发之--获取微信运动步数的实例代码,希望本文对大家学微信有所帮助

        本文将带你了解微信小程序开发之--获取微信运动步数的实例代码,希望本文对大家学微信有所帮助


微信小程序的微信运动每日步数获取

第一步,获取session_key,用来解密必须用到的

①这里,获取session_key就不叙述了,跟获取openid的步骤是一样的,


注意:这里要注意的是,在体验版中,使用体验版的appid和secret,微信小程序端是可以获取到seesion_key和openid的,而在上线的正式版本中,使用正式的appid和secret,则会出现错误,具体原因,详见上面一个链接

第二步,获取encryptedData和iv,就是一些,微信步数加密后的数据

①这里获取这两个数据,是调用wx.getWeRunData(OBJECT)这个接口获取的,具体一些权限的判断和处理,详见:


第三步,根据appid,session_key,iv来解密encryptedData,则会获取到解密之后的数据




使用CryptoJS解决微信小程序用户信息解密

体验版具体代码(正式版需在服务器端处理数据):

/**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
   var that = this;
   wx.login({
     success: function(res){
       var 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(session_key);
             that.getData(appid,session_key);
           }
         })
       }
     }
   })
   },

  //获取encryptedData(没有解密的步数)和iv(加密算法的初始向量)
 getData: 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;
             //使用解密工具,链接地址:
             //https://codeload.github.com/gwjjeff/cryptojs/zip/master
             var pc = new WXBizDataCrypt(appid, session_key);
             console.log(pc);
             var data = pc.decryptData(encryptedData, iv)
             console.log(data)
           },
           fail: function (res) {
             wx.showModal({
               title: '提示',
               content: '开发者未开通微信运动,请关注“微信运动”公众号后重试',
               showCancel: false,
               confirmText: '知道了'
             })
           }
         })

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程