github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/message/mass/mass2users/msg.go (about) 1 package mass2users 2 3 import ( 4 "github.com/chanxuehong/wechat/mp/core" 5 ) 6 7 const ( 8 MsgTypeText core.MsgType = "text" 9 MsgTypeImage core.MsgType = "image" 10 MsgTypeVoice core.MsgType = "voice" 11 MsgTypeVideo core.MsgType = "mpvideo" 12 MsgTypeNews core.MsgType = "mpnews" 13 MsgTypeWxCard core.MsgType = "wxcard" 14 ) 15 16 type MsgHeader struct { 17 ToUser []string `json:"touser,omitempty"` 18 MsgType core.MsgType `json:"msgtype"` 19 } 20 21 type Text struct { 22 MsgHeader 23 Text struct { 24 Content string `json:"content"` 25 } `json:"text"` 26 } 27 28 func NewText(toUser []string, content string) *Text { 29 var msg Text 30 msg.MsgType = MsgTypeText 31 msg.ToUser = toUser 32 msg.Text.Content = content 33 return &msg 34 } 35 36 type Image struct { 37 MsgHeader 38 Image struct { 39 MediaId string `json:"media_id"` 40 } `json:"image"` 41 } 42 43 func NewImage(toUser []string, mediaId string) *Image { 44 var msg Image 45 msg.MsgType = MsgTypeImage 46 msg.ToUser = toUser 47 msg.Image.MediaId = mediaId 48 return &msg 49 } 50 51 type Voice struct { 52 MsgHeader 53 Voice struct { 54 MediaId string `json:"media_id"` // mediaId 通过上传多媒体文件得到 55 } `json:"voice"` 56 } 57 58 func NewVoice(toUser []string, mediaId string) *Voice { 59 var msg Voice 60 msg.MsgType = MsgTypeVoice 61 msg.ToUser = toUser 62 msg.Voice.MediaId = mediaId 63 return &msg 64 } 65 66 type Video struct { 67 MsgHeader 68 Video struct { 69 MediaId string `json:"media_id"` 70 } `json:"mpvideo"` 71 } 72 73 // 新建视频消息. 74 // 75 // NOTE: 对于临时素材, mediaId 应该通过 media.UploadVideo2 得到 76 func NewVideo(toUser []string, mediaId string) *Video { 77 var msg Video 78 msg.MsgType = MsgTypeVideo 79 msg.ToUser = toUser 80 msg.Video.MediaId = mediaId 81 return &msg 82 } 83 84 // 图文消息 85 type News struct { 86 MsgHeader 87 News struct { 88 MediaId string `json:"media_id"` 89 } `json:"mpnews"` 90 } 91 92 // 新建图文消息. 93 // 94 // NOTE: 对于临时素材, mediaId 应该通过 media.UploadNews 得到 95 func NewNews(toUser []string, mediaId string) *News { 96 var msg News 97 msg.MsgType = MsgTypeNews 98 msg.ToUser = toUser 99 msg.News.MediaId = mediaId 100 return &msg 101 } 102 103 // 卡券消息 104 type WxCard struct { 105 MsgHeader 106 WxCard struct { 107 CardId string `json:"card_id"` 108 CardExt string `json:"card_ext,omitempty"` 109 } `json:"wxcard"` 110 } 111 112 // 新建卡券, 特别注意: 目前该接口仅支持填入非自定义code的卡券和预存模式的自定义code卡券. 113 // 114 // cardExt 可以为空 115 func NewWxCard(toUser []string, cardId, cardExt string) *WxCard { 116 var msg WxCard 117 msg.MsgType = MsgTypeWxCard 118 msg.ToUser = toUser 119 msg.WxCard.CardId = cardId 120 msg.WxCard.CardExt = cardExt 121 return &msg 122 }