微信平臺(tái)開(kāi)發(fā) 接收事件推送

2019-03-14 11:40 更新

接收事件推送

在微信用戶和公眾號(hào)產(chǎn)生交互的過(guò)程中,用戶的某些操作會(huì)使得微信服務(wù)器通過(guò)事件推送的形式通知到開(kāi)發(fā)者在開(kāi)發(fā)者中心處設(shè)置的服務(wù)器地址,從而開(kāi)發(fā)者可以獲取到該信息。其中,某些事件推送在發(fā)生后,是允許開(kāi)發(fā)者回復(fù)用戶的,某些則不允許,詳細(xì)說(shuō)明請(qǐng)見(jiàn)本頁(yè)末尾的微信推送消息與事件說(shuō)明。

關(guān)注/取消關(guān)注事件

用戶在關(guān)注與取消關(guān)注公眾號(hào)時(shí),微信會(huì)把這個(gè)事件推送到開(kāi)發(fā)者填寫的URL。方便開(kāi)發(fā)者給用戶下發(fā)歡迎消息或者做帳號(hào)的解綁。

微信服務(wù)器在五秒內(nèi)收不到響應(yīng)會(huì)斷掉連接,并且重新發(fā)起請(qǐng)求,總共重試三次。

關(guān)于重試的消息排重,推薦使用FromUserName + CreateTime 排重。

假如服務(wù)器無(wú)法保證在五秒內(nèi)處理并回復(fù),可以直接回復(fù)空串,微信服務(wù)器不會(huì)對(duì)此作任何處理,并且不會(huì)發(fā)起重試。


推送XML數(shù)據(jù)包示例:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>

參數(shù)說(shuō)明:

參數(shù)描述
ToUserName開(kāi)發(fā)者微信號(hào)
FromUserName發(fā)送方帳號(hào)(一個(gè)OpenID)
CreateTime消息創(chuàng)建時(shí)間 (整型)
MsgType消息類型,event
Event事件類型,subscribe(訂閱)、unsubscribe(取消訂閱)

使用網(wǎng)頁(yè)調(diào)試工具調(diào)試該接口

掃描帶參數(shù)二維碼事件

用戶掃描帶場(chǎng)景值二維碼時(shí),可能推送以下兩種事件:

  1. 如果用戶還未關(guān)注公眾號(hào),則用戶可以關(guān)注公眾號(hào),關(guān)注后微信會(huì)將帶場(chǎng)景值關(guān)注事件推送給開(kāi)發(fā)者。

  2. 如果用戶已經(jīng)關(guān)注公眾號(hào),則微信會(huì)將帶場(chǎng)景值掃描事件推送給開(kāi)發(fā)者。

1. 用戶未關(guān)注時(shí),進(jìn)行關(guān)注后的事件推送

推送XML數(shù)據(jù)包示例:

<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>

參數(shù)說(shuō)明:

參數(shù)描述
ToUserName開(kāi)發(fā)者微信號(hào)
FromUserName發(fā)送方帳號(hào)(一個(gè)OpenID)
CreateTime消息創(chuàng)建時(shí)間 (整型)
MsgType消息類型,event
Event事件類型,subscribe
EventKey事件KEY值,qrscene_為前綴,后面為二維碼的參數(shù)值
Ticket二維碼的ticket,可用來(lái)?yè)Q取二維碼圖片

2. 用戶已關(guān)注時(shí)的事件推送

推送XML數(shù)據(jù)包示例:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[SCAN]]></Event>
<EventKey><![CDATA[SCENE_VALUE]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>

參數(shù)說(shuō)明:

參數(shù)描述
ToUserName開(kāi)發(fā)者微信號(hào)
FromUserName發(fā)送方帳號(hào)(一個(gè)OpenID)
CreateTime消息創(chuàng)建時(shí)間 (整型)
MsgType消息類型,event
Event事件類型,SCAN
EventKey事件KEY值,是一個(gè)32位無(wú)符號(hào)整數(shù),即創(chuàng)建二維碼時(shí)的二維碼scene_id
Ticket二維碼的ticket,可用來(lái)?yè)Q取二維碼圖片

使用網(wǎng)頁(yè)調(diào)試工具調(diào)試該接口

上報(bào)地理位置事件

用戶同意上報(bào)地理位置后,每次進(jìn)入公眾號(hào)會(huì)話時(shí),都會(huì)在進(jìn)入時(shí)上報(bào)地理位置,或在進(jìn)入會(huì)話后每5秒上報(bào)一次地理位置,公眾號(hào)可以在公眾平臺(tái)網(wǎng)站中修改以上設(shè)置。上報(bào)地理位置時(shí),微信會(huì)將上報(bào)地理位置事件推送到開(kāi)發(fā)者填寫的URL。

推送XML數(shù)據(jù)包示例:

<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>

參數(shù)說(shuō)明:

參數(shù)描述
ToUserName開(kāi)發(fā)者微信號(hào)
FromUserName發(fā)送方帳號(hào)(一個(gè)OpenID)
CreateTime消息創(chuàng)建時(shí)間 (整型)
MsgType消息類型,event
Event事件類型,LOCATION
Latitude地理位置緯度
Longitude地理位置經(jīng)度
Precision地理位置精度

使用網(wǎng)頁(yè)調(diào)試工具調(diào)試該接口

自定義菜單事件

用戶點(diǎn)擊自定義菜單后,微信會(huì)把點(diǎn)擊事件推送給開(kāi)發(fā)者,請(qǐng)注意,點(diǎn)擊菜單彈出子菜單,不會(huì)產(chǎn)生上報(bào)。

點(diǎn)擊菜單拉取消息時(shí)的事件推送

推送XML數(shù)據(jù)包示例:

<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>

參數(shù)說(shuō)明:

參數(shù)描述
ToUserName開(kāi)發(fā)者微信號(hào)
FromUserName發(fā)送方帳號(hào)(一個(gè)OpenID)
CreateTime消息創(chuàng)建時(shí)間 (整型)
MsgType消息類型,event
Event事件類型,CLICK
EventKey事件KEY值,與自定義菜單接口中KEY值對(duì)應(yīng)


點(diǎn)擊菜單跳轉(zhuǎn)鏈接時(shí)的事件推送

推送XML數(shù)據(jù)包示例:

<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>

參數(shù)說(shuō)明:

參數(shù)描述
ToUserName開(kāi)發(fā)者微信號(hào)
FromUserName發(fā)送方帳號(hào)(一個(gè)OpenID)
CreateTime消息創(chuàng)建時(shí)間 (整型)
MsgType消息類型,event
Event事件類型,VIEW
EventKey事件KEY值,設(shè)置的跳轉(zhuǎn)URL

使用網(wǎng)頁(yè)調(diào)試工具調(diào)試該接口

消息調(diào)試接口

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)