github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/message/mass/mass.go (about) 1 package mass 2 3 import ( 4 "github.com/chanxuehong/wechat/mp/core" 5 ) 6 7 // 群发结果 8 type Result struct { 9 MsgId int64 `json:"msg_id"` // 消息发送任务的ID 10 11 // 消息的数据ID,该字段只有在群发图文消息时,才会出现。可以用于在图文分析数据接口中,获取到对应的图文消息的数据, 12 // 是图文分析数据接口中的msgid字段中的前半部分,详见图文分析数据接口中的msgid字段的介绍。 13 MsgDataId int64 `json:"msg_data_id"` 14 } 15 16 // Delete 删除群发. 17 func Delete(clt *core.Client, msgid int64) (err error) { 18 const incompleteURL = "https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token=" 19 20 var request = struct { 21 MsgId int64 `json:"msg_id"` 22 }{ 23 MsgId: msgid, 24 } 25 var result core.Error 26 if err = clt.PostJSON(incompleteURL, &request, &result); err != nil { 27 return 28 } 29 if result.ErrCode != core.ErrCodeOK { 30 err = &result 31 return 32 } 33 return 34 } 35 36 type Status struct { 37 MsgId int64 `json:"msg_id"` 38 Status string `json:"msg_status"` // 消息发送后的状态, SEND_SUCCESS表示发送成功 39 } 40 41 // GetStatus 查询群发消息发送状态. 42 func GetStatus(clt *core.Client, msgid int64) (status *Status, err error) { 43 const incompleteURL = "https://api.weixin.qq.com/cgi-bin/message/mass/get?access_token=" 44 45 var request = struct { 46 MsgId int64 `json:"msg_id"` 47 }{ 48 MsgId: msgid, 49 } 50 var result struct { 51 core.Error 52 Status 53 } 54 if err = clt.PostJSON(incompleteURL, &request, &result); err != nil { 55 return 56 } 57 if result.ErrCode != core.ErrCodeOK { 58 err = &result.Error 59 return 60 } 61 status = &result.Status 62 return 63 }