From 45caf61899b28009789bbaeb6e68c1864039b678 Mon Sep 17 00:00:00 2001 From: HUCHAOQI Date: Thu, 10 Jun 2021 10:28:01 +0800 Subject: [PATCH] Silenceper release 2.0 (#408) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(miniapp): 增加统一服务消息 * feat(miniapp): 增加获取微信运动数据接口 * refactor(werun): 更改werun的位置 * fix(lint): 更改stuct名称 Co-authored-by: hyperq --- miniprogram/miniprogram.go | 6 ++++++ miniprogram/werun/werun.go | 40 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 miniprogram/werun/werun.go diff --git a/miniprogram/miniprogram.go b/miniprogram/miniprogram.go index 686d5c4..27988a4 100644 --- a/miniprogram/miniprogram.go +++ b/miniprogram/miniprogram.go @@ -11,6 +11,7 @@ import ( "github.com/silenceper/wechat/v2/miniprogram/qrcode" "github.com/silenceper/wechat/v2/miniprogram/subscribe" "github.com/silenceper/wechat/v2/miniprogram/tcb" + "github.com/silenceper/wechat/v2/miniprogram/werun" ) //MiniProgram 微信小程序相关API @@ -72,3 +73,8 @@ func (miniProgram *MiniProgram) GetSubscribe() *subscribe.Subscribe { func (miniProgram *MiniProgram) GetCustomerMessage() *message.Manager { return message.NewCustomerMessageManager(miniProgram.ctx) } + +// GetWeRun 微信运动接口 +func (miniProgram *MiniProgram) GetWeRun() *werun.WeRun { + return werun.NewWeRun(miniProgram.ctx) +} diff --git a/miniprogram/werun/werun.go b/miniprogram/werun/werun.go new file mode 100644 index 0000000..0b34cfa --- /dev/null +++ b/miniprogram/werun/werun.go @@ -0,0 +1,40 @@ +package werun + +import ( + "encoding/json" + + "github.com/silenceper/wechat/v2/miniprogram/context" + "github.com/silenceper/wechat/v2/miniprogram/encryptor" +) + +// WeRun 微信运动 +type WeRun struct { + *context.Context +} + +// Data 微信运动数据 +type Data struct { + StepInfoList []struct { + Timestamp int `json:"timestamp"` + Step int `json:"step"` + } `json:"stepInfoList"` +} + +// NewWeRun 实例化 +func NewWeRun(ctx *context.Context) *WeRun { + return &WeRun{Context: ctx} +} + +// GetWeRunData 解密数据 +func (werun *WeRun) GetWeRunData(sessionKey, encryptedData, iv string) (*Data, error) { + cipherText, err := encryptor.GetCipherText(sessionKey, encryptedData, iv) + if err != nil { + return nil, err + } + var weRunData Data + err = json.Unmarshal(cipherText, &weRunData) + if err != nil { + return nil, err + } + return &weRunData, nil +}