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  }