package weapp const ( apiSendUniformMessage = "/cgi-bin/message/wxopen/template/uniform_send" ) // UniformMsgData 模板消息内容 type UniformMsgData map[string]UniformMsgKeyword // UniformMsgKeyword 关键字 type UniformMsgKeyword struct { Value string `json:"value"` Color string `json:"color,omitempty"` } // UniformWeappTmpMsg 小程序模板消息 type UniformWeappTmpMsg struct { TemplateID string `json:"template_id"` Page string `json:"page"` FormID string `json:"form_id"` Data UniformMsgData `json:"data"` EmphasisKeyword string `json:"emphasis_keyword,omitempty"` } // UniformMsgMiniprogram 小程序 type UniformMsgMiniprogram struct { AppID string `json:"appid"` PagePath string `json:"pagepath"` } // UniformMpTmpMsg 公众号模板消息 type UniformMpTmpMsg struct { AppID string `json:"appid"` TemplateID string `json:"template_id"` URL string `json:"url"` Miniprogram UniformMsgMiniprogram `json:"miniprogram"` Data UniformMsgData `json:"data"` } // Miniprogram 小程序 type Miniprogram struct { AppID string `json:"appid"` PagePath string `json:"pagepath"` } // UniformMsgSender 统一服务消息 type UniformMsgSender struct { ToUser string `json:"touser"` // 用户 openid UniformWeappTmpMsg UniformWeappTmpMsg `json:"weapp_template_msg,omitempty"` UniformMpTmpMsg UniformMpTmpMsg `json:"mp_template_msg,omitempty"` } // Send 统一服务消息 // // token access_token func (msg *UniformMsgSender) Send(token string) (*CommonError, error) { api := baseURL + apiSendUniformMessage return msg.send(api, token) } func (msg *UniformMsgSender) send(api, token string) (*CommonError, error) { api, err := tokenAPI(api, token) if err != nil { return nil, err } res := new(CommonError) if err := postJSON(api, msg, res); err != nil { return nil, err } return res, nil }