1
0
mirror of https://github.com/silenceper/wechat.git synced 2026-02-04 12:52:27 +08:00

feat(miniapp): 增加统一服务消息 (#385)

Co-authored-by: hyperq <hyperq1g@gmail>
This commit is contained in:
HUCHAOQI
2021-04-12 15:56:10 +08:00
committed by GitHub
parent d1241790cb
commit 5ec4cc2269

View File

@@ -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")
}