1
1
package subscribe
2
2
3
3
import (
4
+ "encoding/json"
4
5
"fmt"
5
6
6
7
"github.com/silenceper/wechat/v2/miniprogram/context"
@@ -70,6 +71,13 @@ type TemplateList struct {
70
71
Data []TemplateItem `json:"data"`
71
72
}
72
73
74
+ // resTemplateSend 发送获取 msg id
75
+ type resTemplateSend struct {
76
+ util.CommonError
77
+
78
+ MsgID int64 `json:"msgid"`
79
+ }
80
+
73
81
// Send 发送订阅消息
74
82
func (s * Subscribe ) Send (msg * Message ) (err error ) {
75
83
var accessToken string
@@ -85,6 +93,33 @@ func (s *Subscribe) Send(msg *Message) (err error) {
85
93
return util .DecodeWithCommonError (response , "Send" )
86
94
}
87
95
96
+ // SendGetMsgID 发送订阅消息返回 msgid
97
+ func (s * Subscribe ) SendGetMsgID (msg * Message ) (msgID int64 , err error ) {
98
+ var accessToken string
99
+ accessToken , err = s .GetAccessToken ()
100
+ if err != nil {
101
+ return
102
+ }
103
+ uri := fmt .Sprintf ("%s?access_token=%s" , subscribeSendURL , accessToken )
104
+ response , err := util .PostJSON (uri , msg )
105
+ if err != nil {
106
+ return
107
+ }
108
+
109
+ var result resTemplateSend
110
+ if err = json .Unmarshal (response , & result ); err != nil {
111
+ return
112
+ }
113
+ if result .ErrCode != 0 {
114
+ err = fmt .Errorf ("template msg send error : errcode=%v , errmsg=%v" , result .ErrCode , result .ErrMsg )
115
+ return
116
+ }
117
+
118
+ msgID = result .MsgID
119
+
120
+ return
121
+ }
122
+
88
123
// ListTemplates 获取当前帐号下的个人模板列表
89
124
// https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.getTemplateList.html
90
125
func (s * Subscribe ) ListTemplates () (* TemplateList , error ) {
0 commit comments