From d3b6f4d6d1e303d3273c59e025de2c492abe7e78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 29 Jan 2023 15:37:58 +0800 Subject: [PATCH] 1 --- platformapi/enterprise_wechat/wechat_msg.go | 75 ++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/platformapi/enterprise_wechat/wechat_msg.go b/platformapi/enterprise_wechat/wechat_msg.go index 7da0698e..a4a29c73 100644 --- a/platformapi/enterprise_wechat/wechat_msg.go +++ b/platformapi/enterprise_wechat/wechat_msg.go @@ -20,6 +20,8 @@ const ( MsgTypeTemplateCard = "template_card" // 模板卡片消息(文本型/图文型/按钮型/投票型/多项选择型) ) +const EnterpriseAgentid = 1000005 // 企业应用的id + // EnterpriseSendMsgReq 发送企业微信文本卡片消息请求参数 type EnterpriseSendMsgReq struct { Touser string `json:"touser"` // 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个) @@ -52,7 +54,7 @@ type EnterpriseSendMsgRes struct { ResponseCode string `json:"response_code"` // 仅消息类型为“按钮交互型”,“投票选择型”和“多项选择型”的模板卡片消息返回,应用可使用response_code调用更新模版卡片消息接口,72小时内有效,且只能使用一次 } -// SendMsgToUser 将消息发送给企业微信用户 +// SendMsgToUser 将消息发送给企业微信用户 msgtype = textcard func (a *API) SendMsgToUser(msg *EnterpriseSendMsgReq) error { a.CheckAccessTokenExpiresIn() param := utils.Struct2Map(msg, "", false) @@ -71,3 +73,74 @@ func (a *API) SendMsgToUser(msg *EnterpriseSendMsgReq) error { return nil } + +// 发送文本消息 +type SendTextMsgReq struct { + Touser string `json:"touser"` + Toparty string `json:"toparty"` + Totag string `json:"totag"` + Msgtype string `json:"msgtype"` + Agentid int `json:"agentid"` + Text struct { + Content string `json:"content"` + } `json:"text"` + Safe int `json:"safe"` + EnableIdTrans int `json:"enable_id_trans"` + EnableDuplicateCheck int `json:"enable_duplicate_check"` + DuplicateCheckInterval int `json:"duplicate_check_interval"` +} + +// SendMsgToUserTypeText 发送文本消息给用户 +func (a *API) SendMsgToUserTypeText(msg *SendTextMsgReq) error { + a.CheckAccessTokenExpiresIn() + param := utils.Struct2Map(msg, "", false) + data, err := a.AccessAPI(WeChatBaseApi, SendMsgToUser, http.MethodPost, param) + if err != nil { + return err + } + + result := &EnterpriseSendMsgRes{} + if err := utils.Map2StructByJson(data, result, false); err != nil { + return err + } + if result.Errcode != 0 { + return errors.New(result.Errmsg) + } + + return nil +} + +// 发送文本消息 +type SendMarkdownMsgReq struct { + Touser string `json:"touser"` + Toparty string `json:"toparty"` + Totag string `json:"totag"` + Msgtype string `json:"msgtype"` + Agentid int `json:"agentid"` + Markdown struct { + Content string `json:"content"` + } `json:"markdown"` + Safe int `json:"safe"` + EnableIdTrans int `json:"enable_id_trans"` + EnableDuplicateCheck int `json:"enable_duplicate_check"` + DuplicateCheckInterval int `json:"duplicate_check_interval"` +} + +// SendMsgToUserMarkdown 发送makedown消息 +func (a *API) SendMsgToUserMarkdown(msg *SendMarkdownMsgReq) error { + a.CheckAccessTokenExpiresIn() + param := utils.Struct2Map(msg, "", false) + data, err := a.AccessAPI(WeChatBaseApi, SendMsgToUser, http.MethodPost, param) + if err != nil { + return err + } + + result := &EnterpriseSendMsgRes{} + if err := utils.Map2StructByJson(data, result, false); err != nil { + return err + } + if result.Errcode != 0 { + return errors.New(result.Errmsg) + } + return err +}