From 5ec4cc2269a2e37170fd99a27806b0200bedca52 Mon Sep 17 00:00:00 2001 From: HUCHAOQI Date: Mon, 12 Apr 2021 15:56:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(miniapp):=20=E5=A2=9E=E5=8A=A0=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E6=9C=8D=E5=8A=A1=E6=B6=88=E6=81=AF=20(#385)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: hyperq --- miniprogram/subscribe/subscribe.go | 42 ++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/miniprogram/subscribe/subscribe.go b/miniprogram/subscribe/subscribe.go index aec7461..0cc28c4 100644 --- a/miniprogram/subscribe/subscribe.go +++ b/miniprogram/subscribe/subscribe.go @@ -15,6 +15,10 @@ const ( // 获取当前帐号下的个人模板列表 // https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.getTemplateList.html getTemplateURL = "https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate" + + // 统一服务消息 + // https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/uniform-message/uniformMessage.send.html + uniformMessageSend = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send" ) // Subscribe 订阅消息 @@ -40,6 +44,7 @@ type Message struct { //DataItem 模版内某个 .DATA 的值 type DataItem struct { Value string `json:"value"` + Color string `json:"color"` } //TemplateItem template item @@ -91,3 +96,40 @@ func (s *Subscribe) ListTemplates() (*TemplateList, error) { } return &templateList, nil } + +// UniformMessage 统一服务消息 +type UniformMessage struct { + ToUser string `json:"touser"` + WeappTemplateMsg struct { + TemplateID string `json:"template_id"` + Page string `json:"page"` + FormID string `json:"form_id"` + Data map[string]*DataItem `json:"data"` + EmphasisKeyword string `json:"emphasis_keyword"` + } `json:"weapp_template_msg"` + MpTemplateMsg struct { + Appid string `json:"appid"` + TemplateID string `json:"template_id"` + URL string `json:"url"` + Miniprogram struct { + Appid string `json:"appid"` + Pagepath string `json:"pagepath"` + } `json:"miniprogram"` + Data map[string]*DataItem `json:"data"` + } `json:"mp_template_msg"` +} + +// UniformSend 发送统一服务消息 +func (s *Subscribe) UniformSend(msg *UniformMessage) (err error) { + var accessToken string + accessToken, err = s.GetAccessToken() + if err != nil { + return + } + uri := fmt.Sprintf("%s?access_token=%s", uniformMessageSend, accessToken) + response, err := util.PostJSON(uri, msg) + if err != nil { + return + } + return util.DecodeWithCommonError(response, "UniformSend") +}