| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- package message
- import "encoding/xml"
- // MsgType 基本消息类型
- type MsgType string
- // EventType 事件类型
- type EventType string
- // InfoType 第三方平台授权事件类型
- type InfoType string
- const (
- //MsgTypeText 表示文本消息
- MsgTypeText MsgType = "text"
- //MsgTypeImage 表示图片消息
- MsgTypeImage = "image"
- //MsgTypeVoice 表示语音消息
- MsgTypeVoice = "voice"
- //MsgTypeVideo 表示视频消息
- MsgTypeVideo = "video"
- //MsgTypeShortVideo 表示短视频消息[限接收]
- MsgTypeShortVideo = "shortvideo"
- //MsgTypeLocation 表示坐标消息[限接收]
- MsgTypeLocation = "location"
- //MsgTypeLink 表示链接消息[限接收]
- MsgTypeLink = "link"
- //MsgTypeMusic 表示音乐消息[限回复]
- MsgTypeMusic = "music"
- //MsgTypeNews 表示图文消息[限回复]
- MsgTypeNews = "news"
- //MsgTypeTransfer 表示消息消息转发到客服
- MsgTypeTransfer = "transfer_customer_service"
- //MsgTypeEvent 表示事件推送消息
- MsgTypeEvent = "event"
- )
- const (
- //EventSubscribe 订阅
- EventSubscribe EventType = "subscribe"
- //EventUnsubscribe 取消订阅
- EventUnsubscribe = "unsubscribe"
- //EventScan 用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者
- EventScan = "SCAN"
- //EventLocation 上报地理位置事件
- EventLocation = "LOCATION"
- //EventClick 点击菜单拉取消息时的事件推送
- EventClick = "CLICK"
- //EventView 点击菜单跳转链接时的事件推送
- EventView = "VIEW"
- //EventScancodePush 扫码推事件的事件推送
- EventScancodePush = "scancode_push"
- //EventScancodeWaitmsg 扫码推事件且弹出“消息接收中”提示框的事件推送
- EventScancodeWaitmsg = "scancode_waitmsg"
- //EventPicSysphoto 弹出系统拍照发图的事件推送
- EventPicSysphoto = "pic_sysphoto"
- //EventPicPhotoOrAlbum 弹出拍照或者相册发图的事件推送
- EventPicPhotoOrAlbum = "pic_photo_or_album"
- //EventPicWeixin 弹出微信相册发图器的事件推送
- EventPicWeixin = "pic_weixin"
- //EventLocationSelect 弹出地理位置选择器的事件推送
- EventLocationSelect = "location_select"
- //EventTemplateSendJobFinish 发送模板消息推送通知
- EventTemplateSendJobFinish = "TEMPLATESENDJOBFINISH"
- )
- const (
- // InfoTypeVerifyTicket 返回ticket
- InfoTypeVerifyTicket InfoType = "component_verify_ticket"
- // InfoTypeAuthorized 授权
- InfoTypeAuthorized = "authorized"
- // InfoTypeUnauthorized 取消授权
- InfoTypeUnauthorized = "unauthorized"
- // InfoTypeUpdateAuthorized 更新授权
- InfoTypeUpdateAuthorized = "updateauthorized"
- )
- //MixMessage 存放所有微信发送过来的消息和事件
- type MixMessage struct {
- CommonToken
- //基本消息
- MsgID int64 `xml:"MsgId"`
- Content string `xml:"Content"`
- Recognition string `xml:"Recognition"`
- PicURL string `xml:"PicUrl"`
- MediaID string `xml:"MediaId"`
- Format string `xml:"Format"`
- ThumbMediaID string `xml:"ThumbMediaId"`
- LocationX float64 `xml:"Location_X"`
- LocationY float64 `xml:"Location_Y"`
- Scale float64 `xml:"Scale"`
- Label string `xml:"Label"`
- Title string `xml:"Title"`
- Description string `xml:"Description"`
- URL string `xml:"Url"`
- //事件相关
- Event EventType `xml:"Event"`
- EventKey string `xml:"EventKey"`
- Ticket string `xml:"Ticket"`
- Latitude string `xml:"Latitude"`
- Longitude string `xml:"Longitude"`
- Precision string `xml:"Precision"`
- MenuID string `xml:"MenuId"`
- Status string `xml:"Status"`
- SessionFrom string `xml:"SessionFrom"`
- ScanCodeInfo struct {
- ScanType string `xml:"ScanType"`
- ScanResult string `xml:"ScanResult"`
- } `xml:"ScanCodeInfo"`
- SendPicsInfo struct {
- Count int32 `xml:"Count"`
- PicList []EventPic `xml:"PicList>item"`
- } `xml:"SendPicsInfo"`
- SendLocationInfo struct {
- LocationX float64 `xml:"Location_X"`
- LocationY float64 `xml:"Location_Y"`
- Scale float64 `xml:"Scale"`
- Label string `xml:"Label"`
- Poiname string `xml:"Poiname"`
- }
- // 第三方平台相关
- InfoType InfoType `xml:"InfoType"`
- AppID string `xml:"AppId"`
- ComponentVerifyTicket string `xml:"ComponentVerifyTicket"`
- AuthorizerAppid string `xml:"AuthorizerAppid"`
- AuthorizationCode string `xml:"AuthorizationCode"`
- AuthorizationCodeExpiredTime int64 `xml:"AuthorizationCodeExpiredTime"`
- PreAuthCode string `xml:"PreAuthCode"`
- // 卡券相关
- CardID string `xml:"CardId"`
- RefuseReason string `xml:"RefuseReason"`
- IsGiveByFriend int32 `xml:"IsGiveByFriend"`
- FriendUserName string `xml:"FriendUserName"`
- UserCardCode string `xml:"UserCardCode"`
- OldUserCardCode string `xml:"OldUserCardCode"`
- OuterStr string `xml:"OuterStr"`
- IsRestoreMemberCard int32 `xml:"IsRestoreMemberCard"`
- UnionID string `xml:"UnionId"`
- }
- //EventPic 发图事件推送
- type EventPic struct {
- PicMd5Sum string `xml:"PicMd5Sum"`
- }
- //EncryptedXMLMsg 安全模式下的消息体
- type EncryptedXMLMsg struct {
- XMLName struct{} `xml:"xml" json:"-"`
- ToUserName string `xml:"ToUserName" json:"ToUserName"`
- EncryptedMsg string `xml:"Encrypt" json:"Encrypt"`
- }
- //ResponseEncryptedXMLMsg 需要返回的消息体
- type ResponseEncryptedXMLMsg struct {
- XMLName struct{} `xml:"xml" json:"-"`
- EncryptedMsg string `xml:"Encrypt" json:"Encrypt"`
- MsgSignature string `xml:"MsgSignature" json:"MsgSignature"`
- Timestamp int64 `xml:"TimeStamp" json:"TimeStamp"`
- Nonce string `xml:"Nonce" json:"Nonce"`
- }
- // CommonToken 消息中通用的结构
- type CommonToken struct {
- XMLName xml.Name `xml:"xml"`
- ToUserName string `xml:"ToUserName"`
- FromUserName string `xml:"FromUserName"`
- CreateTime int64 `xml:"CreateTime"`
- MsgType MsgType `xml:"MsgType"`
- }
- //SetToUserName set ToUserName
- func (msg *CommonToken) SetToUserName(toUserName string) {
- msg.ToUserName = toUserName
- }
- //SetFromUserName set FromUserName
- func (msg *CommonToken) SetFromUserName(fromUserName string) {
- msg.FromUserName = fromUserName
- }
- //SetCreateTime set createTime
- func (msg *CommonToken) SetCreateTime(createTime int64) {
- msg.CreateTime = createTime
- }
- //SetMsgType set MsgType
- func (msg *CommonToken) SetMsgType(msgType MsgType) {
- msg.MsgType = msgType
- }
|