接收事件推播
接收事件推送
在微信使用者和公眾號產生互動的過程中,使用者的某些操作會使得微信伺服器透過事件推送的形式通知開發者在開發者中心處設定的伺服器位址,從而開發者可以獲得該資訊。其中,某些事件推播在發生後,是允許開發者回覆使用者的,某些則不允許,詳細說明請見本頁末的微信推播訊息與事件說明。
追蹤/取消追蹤事件
用戶在追蹤與取消追蹤公眾號時,微信會把這個事件推送到開發者填寫的URL。方便開發者給用戶下發歡迎訊息或是做帳號的解綁。
微信伺服器在五秒鐘內收不到回應會斷掉連接,並且重新發起請求,總共重試三次。
關於重試的訊息排重,建議使用FromUserName CreateTime 排重。
假如伺服器無法保證在五秒內處理並回复,可以直接回复空串,微信伺服器不會對此作任何處理,並且不會發起重試。
推送XML封包範例:
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[subscribe]]></Event> </xml> |
參數說明:
參數 | 描述 |
---|---|
#ToUserName | 開發者微訊號 |
FromUserName | 發送方帳號(一個OpenID) |
CreateTime | #訊息建立時間(整數) |
MsgType | 訊息類型,event |
Event | 事件類型,subscribe (訂閱)、unsubscribe(取消訂閱) |
掃描帶參數二維碼事件
使用者掃描帶場景值二維碼時,可能推送以下兩種事件:
如果用戶還未關注公眾號,則用戶可以關注公眾號,關注後微信會將帶場景值關注事件推送給開發者。
如果使用者已經關注公眾號,則微信會將帶場景值掃描事件推送給開發者。
1. 用戶未關注時,進行關注後的事件推送
推送XML封包範例:
<xml><ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[subscribe]]></Event> <EventKey><![CDATA[qrscene_123123]]></EventKey> <Ticket><![CDATA[TICKET]]></Ticket> </xml> |
參數說明:
參數 | 描述 |
---|---|
#ToUserName | 開發者微訊號 |
FromUserName | 發送方帳號(一個OpenID) |
CreateTime | #訊息建立時間(整數) |
MsgType | 訊息類型,event |
Event | 事件類型,subscribe |
EventKey | 事件KEY值,qrscene_為前綴,後面為二維碼的參數值 |
Ticket | 二維碼的ticket,可用來換取二維碼圖片 |
2. 使用者已關注時的事件推送
推送XML封包範例:
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> < CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[SCAN]]> <Event><![CDATA[SCAN]]>< /Event> <EventKey><![CDATA[SCENE_VALUE]]></EventKey> <Ticket><![CDATA[TICKET]]></Ticket><![CDATA[TICKET]]></ | </xml>
參數說明:
參數 | 描述 |
---|---|
#ToUserName | 開發者微訊號 |
FromUserName | 發送方帳號(一個OpenID) |
CreateTime | #訊息建立時間(整數) |
MsgType | 訊息類型,event |
Event | #事件類型,SCAN |
EventKey | 事件KEY值,是32位元無符號整數,即建立二維碼時的二維碼scene_id |
Ticket | 二維碼的ticket,可用來換取二維碼圖片 |
回報地理位置事件
使用者同意回報地理位置後,每次進入公眾號會話時,都會在進入時上報地理位置,或在進入會話後每5秒上報一次地理位置,公眾號可以在公眾平台網站中修改以上設定。上報地理位置時,微信會將上報地理位置事件推播到開發者填寫的URL。
推送XML封包範例:
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[LOCATION]]></Event> <Latitude>23.137466</Latitude> <Longitude>113.352425</Longitude> <Precision>119.385040</Precision> </xml> |
參數說明:
參數 | 描述 |
---|---|
#ToUserName | 開發者微訊號 |
FromUserName | 發送方帳號(一個OpenID) |
CreateTime | #訊息建立時間(整數) |
MsgType | 訊息類型,event |
Event | #事件類型,LOCATION |
Latitude | 地理位置緯度 |
#Longitude | 地理位置經度 |
#Precision | 地理位置精確度 |
自訂選單事件
使用者點擊自訂選單後,微信會把點擊事件推播給開發者,請注意,點選選單彈出子選單,不會產生回報。
#推送XML封包範例:
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[CLICK]]></Event> <EventKey><![CDATA[EVENTKEY]]></EventKey> </xml> |
參數說明:
參數 | 描述 |
---|---|
#ToUserName | 開發者微訊號 |
FromUserName | 發送方帳號(一個OpenID) |
CreateTime | #訊息建立時間(整數) |
MsgType | 訊息類型,event |
Event | #事件類型,CLICK |
EventKey | ##事件KEY值,與自訂選單介面中KEY值對應
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[VIEW]]></Event> <EventKey><![CDATA[www.qq.com]]></EventKey> </xml> |
參數說明:
參數 | 描述 |
---|---|
#ToUserName | 開發者微訊號 |
FromUserName | 發送方帳號(一個OpenID) |
CreateTime | #訊息建立時間(整數) |
MsgType | 訊息類型,event |
Event | 事件類型,VIEW |
EventKey | ##事件KEY值,設定的跳轉URL