github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/card/event.go (about) 1 package card 2 3 import ( 4 "github.com/chanxuehong/wechat/mp/core" 5 ) 6 7 const ( 8 // 推送到公众号URL上的事件类型 9 EventTypeCardPassCheck core.EventType = "card_pass_check" // 卡券通过审核 10 EventTypeCardNotPassCheck core.EventType = "card_not_pass_check" // 卡券未通过审核 11 EventTypeUserGiftingCard core.EventType = "user_gifting_card" // 转赠事件推送 12 EventTypeUserGetCard core.EventType = "user_get_card" // 领取事件推送 13 EventTypeUserDelCard core.EventType = "user_del_card" // 删除事件推送 14 EventTypeUserConsumeCard core.EventType = "user_consume_card" // 核销事件推送 15 EventTypeUserViewCard core.EventType = "user_view_card" // 进入会员卡事件推送 16 EventTypeUserEnterSessionFromCard core.EventType = "user_enter_session_from_card" // 从卡券进入公众号会话事件推送 17 EventTypeCardSkuRemind core.EventType = "card_sku_remind" // 库存报警事件 18 19 EventTypeGiftCardPayDone core.EventType = "giftcard_pay_done" // 用户购买礼品卡付款成功 20 EventTypeGiftCardUserAccept core.EventType = "giftcard_user_accept" // 用户领取礼品卡成功 21 ) 22 23 // 卡券通过审核, 微信会把这个事件推送到开发者填写的URL 24 type CardPassCheckEvent struct { 25 XMLName struct{} `xml:"xml" json:"-"` 26 core.MsgHeader 27 28 EventType core.EventType `xml:"Event" json:"Event"` // 事件类型, card_pass_check 29 CardId string `xml:"CardId" json:"CardId"` // 卡券ID 30 } 31 32 func GetCardPassCheckEvent(msg *core.MixedMsg) *CardPassCheckEvent { 33 return &CardPassCheckEvent{ 34 MsgHeader: msg.MsgHeader, 35 EventType: msg.EventType, 36 CardId: msg.CardId, 37 } 38 } 39 40 // 卡券未通过审核, 微信会把这个事件推送到开发者填写的URL 41 type CardNotPassCheckEvent struct { 42 XMLName struct{} `xml:"xml" json:"-"` 43 core.MsgHeader 44 45 EventType core.EventType `xml:"Event" json:"Event"` // 事件类型, card_not_pass_check 46 CardId string `xml:"CardId" json:"CardId"` // 卡券ID 47 RefuseReason string `xml:"RefuseReason" json:"RefuseReason"` 48 } 49 50 func GetCardNotPassCheckEvent(msg *core.MixedMsg) *CardNotPassCheckEvent { 51 return &CardNotPassCheckEvent{ 52 MsgHeader: msg.MsgHeader, 53 EventType: msg.EventType, 54 CardId: msg.CardId, 55 RefuseReason: msg.RefuseReason, 56 } 57 } 58 59 // 用户在领取卡券时, 微信会把这个事件推送到开发者填写的URL. 60 type UserGetCardEvent struct { 61 XMLName struct{} `xml:"xml" json:"-"` 62 core.MsgHeader 63 64 EventType core.EventType `xml:"Event" json:"Event"` // 事件类型, user_get_card 65 CardId string `xml:"CardId" json:"CardId"` // 卡券ID 66 IsGiveByFriend int `xml:"IsGiveByFriend" json:"IsGiveByFriend"` // 是否为转赠, 1 代表是, 0 代表否. 67 FriendUserName string `xml:"FriendUserName" json:"FriendUserName"` // 赠送方账号(一个OpenID), "IsGiveByFriend"为1 时填写该参数. 68 UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` // code 序列号. 自定义code 及非自定义code的卡券被领取后都支持事件推送. 69 OldUserCardCode string `xml:"OldUserCardCode" json:"OldUserCardCode"` // 转赠前的code序列号。 70 OuterId int64 `xml:"OuterId" json:"OuterId"` // 领取场景值, 用于领取渠道数据统计. 可在生成二维码接口及添加JS API 接口中自定义该字段的整型值. 71 OuterStr string `xml:"OuterStr" json:"OuterStr"` 72 IsRestoreMemberCard int `xml:"IsRestoreMemberCard" json:"IsRestoreMemberCard"` 73 IsRecommendByFriend int `xml:"IsRecommendByFriend" json:"IsRecommendByFriend"` 74 UnionId string `xml:"UnionId" json:"UnionId"` // unionId 75 } 76 77 func GetUserGetCardEvent(msg *core.MixedMsg) *UserGetCardEvent { 78 return &UserGetCardEvent{ 79 MsgHeader: msg.MsgHeader, 80 EventType: msg.EventType, 81 CardId: msg.CardId, 82 IsGiveByFriend: msg.IsGiveByFriend, 83 FriendUserName: msg.FriendUserName, 84 UserCardCode: msg.UserCardCode, 85 OldUserCardCode: msg.OldUserCardCode, 86 OuterId: msg.OuterId, 87 OuterStr: msg.OuterStr, 88 IsRestoreMemberCard: msg.IsRestoreMemberCard, 89 IsRecommendByFriend: msg.IsRecommendByFriend, 90 UnionId: msg.UnionId, 91 } 92 } 93 94 // 转赠事件推送. 95 type UserGiftingCardEvent struct { 96 XMLName struct{} `xml:"xml" json:"-"` 97 core.MsgHeader 98 99 EventType core.EventType `xml:"Event" json:"Event"` 100 CardId string `xml:"CardId" json:"CardId"` 101 UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` 102 IsReturnBack int `xml:"IsReturnBack" json:"IsReturnBack"` 103 FriendUserName string `xml:"FriendUserName" json:"FriendUserName"` 104 IsChatRoom int `xml:"IsChatRoom" json:"IsChatRoom"` 105 } 106 107 func GetUserGiftingCardEvent(msg *core.MixedMsg) *UserGiftingCardEvent { 108 return &UserGiftingCardEvent{ 109 MsgHeader: msg.MsgHeader, 110 EventType: msg.EventType, 111 CardId: msg.CardId, 112 UserCardCode: msg.UserCardCode, 113 IsReturnBack: msg.IsReturnBack, 114 FriendUserName: msg.FriendUserName, 115 IsChatRoom: msg.IsChatRoom, 116 } 117 } 118 119 // 用户在删除卡券时, 微信会把这个事件推送到开发者填写的URL. 120 type UserDelCardEvent struct { 121 XMLName struct{} `xml:"xml" json:"-"` 122 core.MsgHeader 123 124 EventType core.EventType `xml:"Event" json:"Event"` // 事件类型, user_del_card 125 CardId string `xml:"CardId" json:"CardId"` // 卡券ID 126 UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` // 商户自定义code 值. 非自定code 推送为空串 127 } 128 129 func GetUserDelCardEvent(msg *core.MixedMsg) *UserDelCardEvent { 130 return &UserDelCardEvent{ 131 MsgHeader: msg.MsgHeader, 132 EventType: msg.EventType, 133 CardId: msg.CardId, 134 UserCardCode: msg.UserCardCode, 135 } 136 } 137 138 // 核销事件推送 139 type UserConsumeCardEvent struct { 140 XMLName struct{} `xml:"xml" json:"-"` 141 core.MsgHeader 142 143 EventType core.EventType `xml:"Event" json:"Event"` // 事件类型, user_consume_card 144 CardId string `xml:"CardId" json:"CardId"` // 卡券ID 145 UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` // 商户自定义code 值. 非自定code 推送为空串 146 ConsumeSource string `xml:"ConsumeSource" json:"ConsumeSource"` // 核销来源。支持开发者统计API核销(FROM_API)、公众平台核销(FROM_MP)、卡券商户助手核销(FROM_MOBILE_HELPER)(核销员微信号) 147 LocationName string `xml:"LocationName" json:"LocationName"` // 门店名称,当前卡券核销的门店名称(只有通过自助核销和买单核销时才会出现该字段) 148 StaffOpenId string `xml:"StaffOpenId" json:"StaffOpenId"` // 核销该卡券核销员的openid(只有通过卡券商户助手核销时才会出现) 149 VerifyCode string `xml:"VerifyCode" json:"VerifyCode"` // 自助核销时,用户输入的验证码 150 RemarkAmount string `xml:"RemarkAmount" json:"RemarkAmount"` // 自助核销时,用户输入的备注金额 151 OuterStr string `xml:"OuterStr" json:"OuterStr"` // 开发者发起核销时传入的自定义参数,用于进行核销渠道统计 152 } 153 154 func GetUserConsumeCardEvent(msg *core.MixedMsg) *UserConsumeCardEvent { 155 return &UserConsumeCardEvent{ 156 MsgHeader: msg.MsgHeader, 157 EventType: msg.EventType, 158 CardId: msg.CardId, 159 UserCardCode: msg.UserCardCode, 160 ConsumeSource: msg.ConsumeSource, 161 LocationName: msg.LocationName, 162 StaffOpenId: msg.StaffOpenId, 163 VerifyCode: msg.VerifyCode, 164 RemarkAmount: msg.RemarkAmount, 165 OuterStr: msg.OuterStr, 166 } 167 } 168 169 // 用户在进入会员卡时, 微信会把这个事件推送到开发者填写的URL 170 type UserViewCardEvent struct { 171 XMLName struct{} `xml:"xml" json:"-"` 172 core.MsgHeader 173 174 EventType core.EventType `xml:"Event" json:"Event"` // 事件类型, user_view_card 175 CardId string `xml:"CardId" json:"CardId"` // 卡券ID 176 UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` // 商户自定义code 值. 非自定code 推送为空串 177 } 178 179 func GetUserViewCardEvent(msg *core.MixedMsg) *UserViewCardEvent { 180 return &UserViewCardEvent{ 181 MsgHeader: msg.MsgHeader, 182 EventType: msg.EventType, 183 CardId: msg.CardId, 184 UserCardCode: msg.UserCardCode, 185 } 186 } 187 188 // 从卡券进入公众号会话事件推送 189 type UserEnterSessionFromCardEvent struct { 190 XMLName struct{} `xml:"xml" json:"-"` 191 core.MsgHeader 192 193 EventType core.EventType `xml:"Event" json:"Event"` // 事件类型, user_view_card 194 CardId string `xml:"CardId" json:"CardId"` // 卡券ID 195 UserCardCode string `xml:"UserCardCode" json:"UserCardCode"` // 商户自定义code 值. 非自定code 推送为空串 196 } 197 198 func GetUserEnterSessionFromCardEvent(msg *core.MixedMsg) *UserEnterSessionFromCardEvent { 199 return &UserEnterSessionFromCardEvent{ 200 MsgHeader: msg.MsgHeader, 201 EventType: msg.EventType, 202 CardId: msg.CardId, 203 UserCardCode: msg.UserCardCode, 204 } 205 } 206 207 // 库存报警事件 208 type CardSkuRemindEvent struct { 209 XMLName struct{} `xml:"xml" json:"-"` 210 core.MsgHeader 211 212 EventType core.EventType `xml:"Event" json:"Event"` // 事件类型, card_sku_remind 213 CardId string `xml:"CardId" json:"CardId"` // 卡券ID 214 Detail string `xml:"Detail" json:"Detail"` // 报警详细信息 215 } 216 217 func GetCardSkuRemindEvent(msg *core.MixedMsg) *CardSkuRemindEvent { 218 return &CardSkuRemindEvent{ 219 MsgHeader: msg.MsgHeader, 220 EventType: msg.EventType, 221 CardId: msg.CardId, 222 Detail: msg.Detail, 223 } 224 } 225 226 // 用户购买礼品卡付款成功 227 type GiftCardPayDoneEvent struct { 228 XMLName struct{} `xml:"xml" json:"-"` 229 core.MsgHeader 230 231 EventType core.EventType `xml:"Event" json:"Event"` // 事件类型,此处为giftcard_pay_done标识订单完成事件 232 PageId string `xml:"PageId" json:"PageId"` // 货架的id 233 OrderId string `xml:"OrderId" json:"OrderId"` // 订单号 234 } 235 236 func GetGiftCardPayDoneEvent(msg *core.MixedMsg) *GiftCardPayDoneEvent { 237 return &GiftCardPayDoneEvent{ 238 MsgHeader: msg.MsgHeader, 239 EventType: msg.EventType, 240 PageId: msg.PageId, 241 OrderId: msg.OrderId, 242 } 243 } 244 245 // 用户领取礼品卡成功 246 type GiftCardUserAcceptEvent struct { 247 XMLName struct{} `xml:"xml" json:"-"` 248 core.MsgHeader 249 250 EventType core.EventType `xml:"Event" json:"Event"` // 事件类型,此处为giftcard_user_accept标识订单完成事件 251 PageId string `xml:"PageId" json:"PageId"` // 货架的id 252 OrderId string `xml:"OrderId" json:"OrderId"` // 订单号 253 } 254 255 func GetGiftCardUserAcceptEvent(msg *core.MixedMsg) *GiftCardUserAcceptEvent { 256 return &GiftCardUserAcceptEvent{ 257 MsgHeader: msg.MsgHeader, 258 EventType: msg.EventType, 259 PageId: msg.PageId, 260 OrderId: msg.OrderId, 261 } 262 }