目前公司的微信相关的对接终于告一段落了,被微信文档坑惨的人,总结一下在收到微信通知回掉的时候总结下文档,接下来会把微信开发中遇到问题全部梳理整理下!
1.整理类型为微信事件通知类型.因为在此次过程中微信有很多事件通知类型,之前没注意后来代码放到线上出现各种空指针,然后排查,微信公众号开发的过程中有好多埋点的通知类型所以整理了一下
1.审核时间推送通知(生成卡券,卡包审核时候)
card_pass_check<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[card_pass_check]]></Event> //不通过为card_not_pass_check <CardId><![CDATA[cardid]]></CardId> <RefuseReason><![CDATA[非法代制]]></RefuseReason> </xml>
2.领取事件推送:用户在领卡/卡券微信回给这个推送事件推送到开发者填写的Url
user_get_card
<xml> <ToUserName> <![CDATA[gh_fc0a06666666]]> </ToUserName> //开发者微信号 <FromUserName> <![CDATA[oZI8Fj040-be6rlDohc6gkoPOQTQ]]> </FromUserName> //领券方帐号(一个OpenID)。 <CreateTime>1472551036</CreateTime> //消息创建时间 (整型) <MsgType> <![CDATA[event]]> </MsgType> //消息类型,event <Event> <![CDATA[user_get_card]]> </Event> 事件类型,user_get_card(用户领取卡券)。 <CardId> <![CDATA[pZI8Fjwsy5fVPRBeD78J4RmqVvBc]]> </CardId> //卡券ID。 <IsGiveByFriend>0</IsGiveByFriend> //是否为转赠领取,1代表是,0代表否。 <UserCardCode> <![CDATA[226009850808]]> </UserCardCode> <FriendUserName> <![CDATA[]]> </FriendUserName> <OuterId>0</OuterId> <OldUserCardCode> <![CDATA[]]> </OldUserCardCode> <OuterStr> <![CDATA[12b]]> </OuterStr> <IsRestoreMemberCard>0</IsRestoreMemberCard> <IsRecommendByFriend>0</IsRecommendByFriend> </xml>
3.转赠事件推送;用户转赠卡包/卡券的时候事件推送
user_gifting_card<xml> <ToUserName><![CDATA[gh_3fcea188bf78]]></ToUserName> <FromUserName><![CDATA[obLatjjwDolFjRRd3doGIdwNqRXw]]></FromUserName> <CreateTime>1474181868</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[user_gifting_card]]></Event> <CardId><![CDATA[pbLatjhU-3pik3d4PsbVzvBxZvJc]]></CardId> <UserCardCode><![CDATA[297466945104]]></UserCardCode> <IsReturnBack>0</IsReturnBack> <FriendUserName><![CDATA[obLatjlNerkb62HtSdQUx66C4NTU]]></FriendUserName> <IsChatRoom>0</IsChatRoom> </xml>
4.删除事件推送;用户在删除卡包/卡券的时候
user_del_card<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[user_del_card]]></Event> <CardId><![CDATA[cardid]]></CardId> <UserCardCode><![CDATA[12312312]]></UserCardCode> </xml>
5. 核销事件推送.用户在核销的时候
user_consume_card<xml> <ToUserName> <![CDATA[gh_fc0a06a20993]]> </ToUserName> <FromUserName> <![CDATA[oZI8Fj040-be6rlDohc6gkoPOQTQ]]> </FromUserName> <CreateTime>1472549042</CreateTime> <MsgType> <![CDATA[event]]> </MsgType> <Event> <![CDATA[user_consume_card]]> </Event> <CardId> <![CDATA[pZI8Fj8y-E8hpvho2d1ZvpGwQBvA]]> </CardId> <UserCardCode> <![CDATA[452998530302]]> </UserCardCode> <ConsumeSource> <![CDATA[FROM_API]]> </ConsumeSource> <LocationName> <![CDATA[]]> </LocationName> <StaffOpenId> <![CDATA[oZ********nJ3bPJu_Rtjkw4c]]> </StaffOpenId> <VerifyCode> <![CDATA[]]> </VerifyCode> <RemarkAmount> <![CDATA[]]> </RemarkAmount> <OuterStr> <![CDATA[xxxxx]]> </OuterStr> </xml>
6.买单的时候事件消息推送
user_pay_from_pay_cell<xml> <ToUserName><![CDATA[gh_e2243xxxxxxx]]></ToUserName> <FromUserName><![CDATA[oo2VNuOUuZGMxxxxxxxx]]></FromUserName> <CreateTime>1442390947</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[user_pay_from_pay_cell]]></Event> <CardId><![CDATA[po2VNuCuRo-8sxxxxxxxxxxx]]></CardId> <UserCardCode><![CDATA[38050000000]]></UserCardCode> <TransId><![CDATA[10022403432015000000000]]></TransId> <LocationId>291710000</LocationId> <Fee><![CDATA[10000]]></Fee> <OriginalFee><![CDATA[10000]]> </OriginalFee> </xml>
7.进入会员卡事件推送
user_view_card<xml> <ToUserName> <![CDATA[gh_fcxxxx6a20993]]> </ToUserName> <FromUserName> <![CDATA[oZI8Fj040-xxxxx6gkoPOQTQ]]> </FromUserName> <CreateTime>1467811138</CreateTime> <MsgType> <![CDATA[event]]> </MsgType> <Event> <![CDATA[user_view_card]]> </Event> <CardId> <![CDATA[pZI8Fj2ezBbxxxxxT2UbiiWLb7Bg]]> </CardId> <UserCardCode> <![CDATA[4xxxxxxxx8558]]> </UserCardCode> <OuterStr> <![CDATA[12b]]> </OuterStr> </xml>
8.从卡券进入公众号会话事件推送
user_enter_session_from_card<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[user_enter_session_from_card]]></Event> <CardId><![CDATA[cardid]]></CardId> <UserCardCode><![CDATA[12312312]]></UserCardCode> </xml>
9.会员卡内容更新事件
update_member_card<xml> <ToUserName><![CDATA[gh_9e1765b5568e]]></ToUserName> <FromUserName><![CDATA[ojZ8YtyVyr30HheH3CM73y7h4jJE]]></FromUserName> <CreateTime>1445507140</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[update_member_card]]></Event> <CardId><![CDATA[pjZ8Ytx-nwvpCRyQneH3Ncmh6N94]]></CardId> <UserCardCode><![CDATA[485027611252]]></UserCardCode> <ModifyBonus>3</ModifyBonus> <ModifyBalance>0</ModifyBalance> </xml>
10 库存报警事件 当某个card_id的初始库存数大于200且当前库存小于等于100时,用户尝试领券会触发发送事件给商户,事件每隔12h发送一次
card_sku_remind<xml> <ToUserName><![CDATA[gh_2d62d*****0]]></ToUserName> <FromUserName><![CDATA[oa3LFuBvWb7*********]]></FromUserName> <CreateTime>1443838506</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[card_sku_remind]]></Event> <CardId><![CDATA[pa3LFuAh2P65**********]]></CardId> <Detail><![CDATA[the card's quantity is equal to 0]]></Detail> </xml>
11会员卡激活事件推送;当用户通过一键激活的方式提交信息并点击激活时,商户会收到用户激活的事件推送
submit_membercard_user_info <xml> <ToUserName> <![CDATA[gh_3fcea188bf78]]></ToUserName> <FromUserName><![CDATA[obLatjlaNQKb8FqOvt1M1x1lIBFE]]></FromUserName> <CreateTime>1432668700</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[submit_membercard_user_info]]></Event> <CardId><![CDATA[pbLatjtZ7v1BG_ZnTjbW85GYc_E8]]></CardId> <UserCardCode><![CDATA[018255396048]]></UserCardCode> </xml>
在处理微信开发的时候有很多事件推送消息,消息类型如果没有处理好,会出现异常,空指针的情况,由于之前没考虑到那么多情况,所以放上去会出现很对空指针,然后自己一个一个的去处理,很是头疼,整理了一下,差不多关于卡包/卡券的推送信息都在这这里了