事件推送應該是微信公衆平臺裏面比較難處理的一個功能,事件比較多並且很分散,不知道啥時候有事件過來。服務器
在微信用戶和公衆號產生交互的過程當中,用戶的某些操做會使得微信服務器經過事件推送的形式通知到開發者的URL,從而開發者能夠獲取到該消息。其中某些事件推送後容許開發者回覆用戶,有些則不容許。微信
事件類型有:微信公衆平臺
1.關注/取消關注網站
2.掃描帶參數二維碼url
3.上報地理位置spa
4.自定義菜單code
5.點擊菜單拉去消息時候的事件推送xml
6.點擊菜單連接時的事件推送。blog
例子:事件
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> 開發者微信號 <FromUserName><![CDATA[FromUser]]></FromUserName> 發送方帳號(一個OpenID) <CreateTime>123456789</CreateTime> 消息建立時間 <MsgType><![CDATA[event]]></MsgType> 消息類型,event <Event><![CDATA[subscribe]]></Event> 事件類型,subscribe(unsubscribe) </xml>
當有用戶關注獲取取消的時候,url會接受到相似上面的xml數據包,處理和處理普通消息相似。
除了上面列舉的幾種事件類型,已知的還有:
1.發送模板消息後,微信服務器將是否送達的結果推送過來。
2.羣發任務結束時,推送事件
3.微信認證事件推送,提供了公衆號認證過程當中各個階段的事件推送,可用於獲知旗下公衆號的認證狀態
4.微信小店中,用戶在微信中付款成功後,微信服務器會將訂單付款通知推送到開發者在公衆平臺網站中設置的回調URL(在開發模式中設置)中,如未設置回調URL,則獲取不到該事件推送。
付款成功推送內容:
<xml> <ToUserName><![CDATA[weixin_media1]]></ToUserName> <FromUserName><![CDATA[oDF3iYyVlek46AyTBbMRVV8VZVlI]]></FromUserName> <CreateTime>1398144192</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[merchant_order]]></Event> <OrderId><![CDATA[test_order_id]]></OrderId> <OrderStatus>2</OrderStatus> <ProductId><![CDATA[test_product_id]]></ProductId> <SkuInfo><![CDATA[10001:1000012;10002:100021]]></SkuInfo> </xml>