接收事件推送
- 我们知道前面添加菜单的时候有一项是事件的
- 那么当用户点击菜单的事件后,则微信服务器会抛送事件xml过来
- 1 关注/取消关注事件
- 用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎消息或者做帐号的解绑。
- 微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次
- MsgType:消息类型,event
- Event:事件类型,subscribe(订阅)、unsubscribe(取消订阅)
扫描带参数二维码事件(未关注)
- 用户扫描带场景值二维码时,可能推送以下两种事件:
- 1 如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。
<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>
- MsgType:消息类型,event
- Event:事件类型,subscribe
- EventKey:事件KEY值,qrscene_为前缀,后面为二维码的参数值
- Ticket:二维码的ticket,可用来换取二维码图片
扫描带参数二维码事件(已关注)
- 2 如果用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者。
- 用户已关注时的事件推送
<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>
- MsgType:消息类型,event
- Event:事件类型,SCAN
- EventKey:事件KEY值,是一个32位无符号整数,即创建二维码时的scene_id
- Ticket:二维码的ticket,可用来换取二维码图片
上报地理位置事件
- 用户同意上报地理位置后,每次进入公众号会话时,都会在进入时上报地理位置,或在进入会话后每5秒上报一次地理位置,公众号可以在公众平台网站中修改以上设置。上报地理位置时,微信会将上报地理位置事件推送到开发者填写的URL。
<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>
- MsgType:消息类型,event
- Event:事件类型,LOCATION
- Latitude:地理位置纬度
- Longitude:地理位置经度
- Precision:地理位置精度
(注:以上事件推送均包含公共字段:ToUserName、FromUserName、CreateTime,且MsgType均为event。开发时需注意5秒超时机制,建议先返回空响应避免重试,业务异步处理)
Previous: 接收微信号发过来的链接消息
Next: 处理自定义菜单事件返回歌曲名称