1. 程式人生 > >小程式獲取微信運動步數

小程式獲取微信運動步數

第一步,獲取session_key,用來解密必須用到的
程式碼為:

wx.login({
    success: function (res) {
      var appid = "wx1b4e5e75***48af1";
      var secret = "8eb5b7c6af68****af2995b6a8758";
      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);
          }
        })
      }
    }
  })

注意:這裡要注意的是,在體驗版中,使用體驗版的appid和secret,微信小程式端是可以獲取到seesion_key和openid的,而在上線的正式版本中,使用正式的appid和secret,則會出現錯誤。

第二步,獲取encryptedData和iv,就是一些,微信步數加密後的資料
程式碼為:

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: '知道了'
            })
          }
        })

詳細 JS程式碼為:

/**
  * 生命週期函式--監聽頁面載入
  */
 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: '知道了'
             })
           }
         })
       }
     }
   })
 },

結果為:

相關推薦

程式獲取運動步數

第一步,獲取session_key,用來解密必須用到的 程式碼為: wx.login({ success: function (res) { var appid = "wx1b4e5e75***48af1"; var secret = "

t程式開發-獲取運動步數

官方API步驟最近做一個微信小程式需用到微信運動資料,根據文件,我寫了一個demo;先總結一下步驟,流程簡單如下:1、呼叫小程式API:wx.login獲取code和sessionKey; 2、呼叫小程式API: wx.getWeRunData獲取微信運動資料(加密的); 3

程式開發-獲取運動步數

官方API 步驟 最近做一個微信小程式需用到微信運動資料,根據文件,我寫了一個demo;先總結一下步驟,流程簡單如下: 1、呼叫小程式API:wx.login獲取code和sessionKey; 2、呼叫小程式API: wx.getWe

程式獲取登陸使用者

傳統的小程式微信登陸 小程式利用雲開發微信登陸 雲開發可以自動實現使用者登入的校驗,開發者無需再次校驗使用者身份,直接通過雲函式的 event.userInfo.openId 即可獲取到使用者資訊。直接呼叫資料庫 、檔案儲存 API 時,也會自動關聯到使用者對應的 o

程式獲取信使用者繫結的手機號

獲取微信使用者繫結的手機號 1.getPhoneNumber這個元件通過button來實現(別的標籤無效)。將button中的open-type=“getPhoneNumber”,並且繫結bindgetphonenumber事件獲取回撥。 <button open-

程式登陸 —— 程式教程系列(20)

簡介: 微信登陸,在新建一個微信小程式Hello World專案的時候,就可以看到專案中出現了我們的微信頭像,其實這個Hello World專案,就有一個簡化版的微信登陸。只不過是,還沒有寫入到咱們自家的後臺中而已。 新建一個Hello World專案,找到a

Okam(奧卡姆):程式開發框架,支援百度程式程式、支付寶程式

Okam(奧卡姆):小程式開發框架,支援百度小程式、微信小程式、支付寶小程式 Okam 是什麼 `Okam` 一個面向小程式開發的開發框架,開發體驗類 `Vue`。詳情 Okam 對各小程式的支援情況 支援 百度小程式 支援 微信小程式 支援 支付寶小程式 Okam 提供

程式-day02-程式-框架-配置-pages、windows、tabBars、debug(json檔案)

1.pages(頁面路徑列表) "pages":[ "pages/index/index", "pages/do/do", "pages/eat/eat", "pages/logs/logs" ] 2.windows(全域性的預設視窗表現) "window":{

3分鐘實現程式喚起支付 Laravel教程

微信支付的接入,如果不使用成熟的開發包,將是巨大的工作量。 依賴 EasyWechat 先在 laravel 專案中依賴 easywechat 這個包 composer require "overtrue/laravel-wechat":"^4.0" 配置 在 .env 中新增微信支付的 key 配置

淺談支付寶程式程式開發的區別

淺談支付寶小程式與微信小程式開發的區別 一、app.json (1)設定小程式通用的的狀態列、導航條、標題、視窗背景色 支付寶小程式 "window": { "defaultTitle": "病案到家", //頁面標題 "titleBarColor": "#1

程式日記-支付提示201商戶訂單號重複

微信支付有2個步驟: 1. 預下單,提供幾個引數(openid,訂單內容,訂單號,總價),預下單成功後獲得預下單號 2.再用預下單號和訂單號真正進行支付。 如果你用了相同的訂單號,但是訂單內容和總價不一樣。則會提醒201商戶訂單號重複. 如果訂單號,內容總價都一樣, 微信會檢查是否已經成功支付,會提醒

使用mpvue開發微程式——原生程式、mpvue、wepy對比

mpvue是什麼?為什麼使用它? 目前小程式開發主要有三種形式:原生、wepy、mpvue,其中wepy是騰訊的開源專案;mpvue是美團開源的一個開發小程式的框架,全稱mini program vue(基於vue.js的小程式),vue開發者使用了這個框架後,開發小程式的效率將得到

程式API—程式開發工具

為了讓開發者可以很方便的調起微信提供的能力,例如獲取使用者資訊、微信支付等等,小程式提供了很多 API 給開發者去使用。 要獲取使用者的地理位置時,只需要: wx.getLocation({ type: ‘wgs84’, success: (re

-齊梟飛前端架構師 程式--仿 QQ左劃事件--

廢話不多說,直接上程式碼: js: var app = getApp() Page({ data: { items: [], startX: 0, //開始座標 startY: 0 }, onLoad: func

爆料 | 別小看“運動步數,可以看出你的職業、生活狀態

在微信的“微信運動”,可以看到自己和好友的運動狀態,還能確切的看到微信運動步數。微信運動步數,雖然只是一個簡單的數字,但是卻可以從中解讀出很多有趣的個人資訊。一起來看下外媒對於“微信運動”步數的相關解讀低於50步,宅或心情不好 微信步數很多時候低於50步,活動範圍一般侷限在家

百度智慧程式擊中軟肋:流量要多更要精

最近幾個月,小程式領域可謂是訊息不斷。此前今日頭條小程式開啟內測引起一陣騷動後,9月25日,百度舉辦了一場智慧小程式媒體溝通會,宣佈智慧小程式將全面開放申請,幾乎所有小程式開發者們都興奮起來,BAT小程式實質之戰也一觸即發。 作為一個在公測期打造了多個成功案例的生態,很

程式支付C#後臺(統一下單)

#region 生成簽名 /// <summary> /// 獲取簽名資料 ///</summary> /// <param name="strParam"></param> /// <param name="key"></par

程式公眾號客服轉私人訊號,實現24小時客服線上

    現在不少企業都有自己的微信公眾號、服務號、小程式,其中也添加了客服功用。     但據所知,官方提供的僅是網頁版的客服系統,我們的客服人民必須開啟網頁進行“守候”。     我們為什麼不能將

程式實現支付

【微信支付】 /* 微信支付 */ wxpay: function () { var that = this //登陸獲取code wx.login({ success: function (res) { consol

程式獲取信使用者繫結的手機號

/**      * 獲取微信繫結的手機號碼      * @param encryptedData       * @param vi      * @param sessionKey      * @param mbId      * @return      * @th