微信小程序获取微信运动步数的实例代码


Posted in Javascript onJuly 20, 2017

现在运动计步很火,无论是蚂蚁森林,还是微信上都很火爆,本文介绍了微信小程序微信运动步数的实例代码,分享给大家

微信小程序API-微信运动
https://mp.weixin.qq.com/debug/wxadoc/dev/api/we-run.html#wxgetwerundataobject

思路:wx.login获取的code请求获取的session_key,wx.getWeRunData获取的iv,encryptData,将它们一起发送到后台解密就行了。

安全顾虑,因为只是示例所以直接传递session_key了,为了安全最好按照下图的方式加密后存储到Redis中再传递key。

微信小程序获取微信运动步数的实例代码

小程序端代码

get3rdSession: function () {
  let that = this
  wx.request({
   url: 'https://localhost/login.php',
   data: {
    code: this.data.code
   },
   method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
   success: function (res) {
    var sessionId = res.data;
    that.setData({ sessionId: sessionId })
    wx.setStorageSync('sessionId', sessionId)
    that.decodeUserInfo()
   }
  })
 },
 decodeUserInfo: function () {
  let that = this
  wx.request({
   url: 'https://localhost/decrypt.php',
   data: {
    encryptedData: that.data.encryptedData,
    iv: that.data.iv,
    session: wx.getStorageSync('sessionId')
   },
   method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
   // header: {}, // 设置请求的 header
   success: function (res) {
    let todayStep = res.data.stepInfoList.pop()
    that.setData({
     step: todayStep.step
    });
   }
  })
 },
 onLoad: function () {
  let that = this
  wx.login({
   success: function (res) {
    let code = res.code
    that.setData({ code: code })
    wx.getWeRunData({//解密微信运动
     success(res) {
      const wRunEncryptedData = res.encryptedData
      that.setData({ encryptedData: wRunEncryptedData })
      that.setData({ iv: res.iv })
      that.get3rdSession()//解密请求函数
     }
    })
   }
  })
 }

后台这使用的是官方PHP版本Demo:先处理login的请求,login.php直接返回session_key,然后再一起请求decrypt.php进行解密。

login.php部分代码

$appid = '你的appid';
$appsecret = '你的appsecret';

$url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$appsecret.'&js_code='.$_GET['code'].'&grant_type=authorization_code';

$content = file_get_contents($url);
$content = json_decode($content);
echo $content->session_key;

decrypt.php部分代码

$pc = new WXBizDataCrypt($appid, $sessionKey);
$errCode = $pc->decryptData($encryptedData, $iv, $data );

if ($errCode == 0) {
  print($data . "\n");
} else {
  print($errCode . "\n");
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
解决 firefox 不支持 document.all的方法
Mar 12 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
Apr 18 Javascript
使用typeof判断function是否存在于上下文
Aug 14 Javascript
动态加载js文件简单示例
Apr 21 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
Sep 17 Javascript
jQuery实现判断控件是否显示的方法
Jan 11 Javascript
JavaScript中利用构造器函数模拟类的方法
Feb 16 Javascript
ECMAScript6--解构
Mar 30 Javascript
Node.js之网络通讯模块实现浅析
Apr 01 Javascript
详解Vue.use自定义自己的全局组件
Jun 14 Javascript
express如何使用session与cookie的方法
Jan 30 Javascript
基于vue中的scoped坑点解说
Sep 04 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
Jul 20 #Javascript
angular动态删除ng-repaeat添加的dom节点的方法
Jul 20 #Javascript
如何使用JS在HTML中自定义字符串格式化
Jul 20 #Javascript
详解用webpack把我们的业务模块分开打包的方法
Jul 20 #Javascript
关于webpack代码拆分的解析
Jul 20 #Javascript
webpack学习笔记之代码分割和按需加载的实例详解
Jul 20 #Javascript
node+vue实现用户注册和头像上传的实例代码
Jul 20 #Javascript
You might like
php 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
php教程之魔术方法的使用示例(php魔术函数)
2014/02/12 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
js select option对象小结
2013/12/20 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
jQuery元素的隐藏与显示实例
2015/01/20 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
详解express使用vue-router的history踩坑
2019/06/05 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
Python 字典中的所有方法及用法
2020/06/10 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
主题实践活动总结
2014/05/08 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
企业贷款委托书格式
2014/09/12 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
外贸英文求职信范文
2015/03/19 职场文书
离婚答辩状范文
2015/05/22 职场文书
刑事附带民事代理词
2015/05/25 职场文书
小学体育教学随笔
2015/08/14 职场文书