全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

微信小程序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");
}

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


# 微信小程序运动步数  # 微信小程序  # 步数  # 小程序获取微信运动  # 微信小程序实现运动步数排行功能(可删除)  # 微信小程序仿微信运动步数排行(交互)  # 的是  # 给大家  # 都很  # 然后再  # 发送到  # 大家多多  # 信上  # 中再  # 就行了  # style  # text  # center  # align  # Redis  # HEAD  # key  # js  # pre  # localhost  # url 


相关文章: 如何快速配置高效服务器建站软件?  linux top下的 minerd 木马清除方法  香港服务器选型指南:免备案配置与高效建站方案解析  如何用免费手机建站系统零基础打造专业网站?  创业网站制作流程,创业网站可靠吗?  如何在企业微信快速生成手机电脑官网?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何在香港服务器上快速搭建免备案网站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  建站VPS推荐:2025年高性能服务器配置指南  建站之星如何快速生成多端适配网站?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  如何在Windows环境下新建FTP站点并设置权限?  想学网站制作怎么学,建立一个网站要花费多少?  如何通过cPanel快速搭建网站?  ,巨量百应是干嘛的?  如何用好域名打造高点击率的自主建站?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  如何在万网自助建站平台快速创建网站?  重庆市网站制作公司,重庆招聘网站哪个好?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  大连网站设计制作招聘信息,大连投诉网站有哪些?  合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?  魔方云NAT建站如何实现端口转发?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  如何打造高效商业网站?建站目的决定转化率  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何快速生成ASP一键建站模板并优化安全性?  如何快速生成凡客建站的专业级图册?  如何基于云服务器快速搭建个人网站?  如何选择PHP开源工具快速搭建网站?  深入理解Android中的xmlns:tools属性  如何用IIS7快速搭建并优化网站站点?  北京网站制作公司哪家好一点,北京租房网站有哪些?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  如何选择高效响应式自助建站源码系统?  如何解决VPS建站LNMP环境配置常见问题?  如何快速搭建虚拟主机网站?新手必看指南  建站之星如何防范黑客攻击与数据泄露?  PHP正则匹配日期和时间(时间戳转换)的实例代码  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站主机是什么?如何选择适合的建站主机?  javascript基本数据类型及类型检测常用方法小结  Android自定义控件实现温度旋转按钮效果  如何配置IIS站点权限与局域网访问?  建站之星后台密码如何安全设置与找回?  简历在线制作网站免费版,如何创建个人简历?  高端智能建站公司优选:品牌定制与SEO优化一站式服务 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。