微信公号开发: 接收事件推送

在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息。其中,某些事件推送在发生后,是允许开发者回复用户的,某些则不允许。

事件消息是相对于普通消息来说的,普通消息有文本、图片、语音、视频、小视频、地理位置和链接,事件消息包括:

  • 关注/取消关注事件
  • 扫描带参数二维码事件
  • 上报地理位置事件
  • 自定义菜单事件
  • 点击菜单拉取消息时的事件推送
  • 点击菜单跳转链接时的事件推送

通用格式

上述事件消息以XML格式推送到开发者服务器,这些XML包含如下通用信息:

<ToUserName><![CDATA[开发者微信openid]]></ToUserName>
<FromUserName><![CDATA[微信用户openid]]></FromUserName>
<CreateTime>时间戳</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[事件内容]]></Event>

对于事件类型的消息,MsgType总是event,因此,开发者可以根据MsgType区分普通消息和事件消息。根据Event区分各个事件消息。

6种事件类型除了推送的XML消息除了包含上述5个基本信息外,还各自包含其它信息,下面一一介绍。

关注/取消关注事件

当微信用户关注公众号后,微信服务器向开发者服务器推送一条事件消息,其中Event总是subscribe。

当微信用户取消关注公众号后,微信服务器向开发者服务器推送一条事件消息,其中Event总是unsubscribe。

扫描带参数二维码事件

用户还未关注公众号

则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。

<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[qrscene_123123]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>

其中Event总是subscribe,EventKey是事件KEY值,qrscene_为前缀,后面为二维码的参数值,Ticket为二维码的ticket,可用来换取二维码图片。

用户已经关注公众号

则微信会将带场景值扫描事件推送给开发者。

<Event><![CDATA[SCAN]]></Event>
<EventKey><![CDATA[SCENE_VALUE]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>

其中Event总是SCAN,EventKey事件KEY值,是一个32位无符号整数,即创建二维码时的二维码scene_id,Ticket为二维码的ticket,可用来换取二维码图片。

上报地理位置事件

用户同意上报地理位置后,每次进入公众号会话时,都会在进入时上报地理位置,或在进入会话后每5秒上报一次地理位置,公众号可以在公众平台网站中修改以上设置。上报地理位置时,微信会将上报地理位置事件推送到开发者填写的URL。

<Event><![CDATA[LOCATION]]></Event>
<Latitude>23.137466</Latitude>
<Longitude>113.352425</Longitude>
<Precision>119.385040</Precision>

其中Event总是,LOCATION

自定义菜单事件

用户点击自定义菜单后,微信会把点击事件推送给开发者,请注意,点击菜单弹出子菜单,不会产生上报。

点击菜单拉取消息时的事件推送

<Event><![CDATA[CLICK]]></Event>
<EventKey><![CDATA[EVENTKEY]]></EventKey>

其中Event总是CLICK,EventKey为事件KEY值,与自定义菜单接口中KEY值对应。

点击菜单跳转链接时的事件推送

<Event><![CDATA[VIEW]]></Event>
<EventKey><![CDATA[www.qq.com]]></EventKey>

其中Event总是VIEW,EventKey为事件KEY值,设置的跳转URL。

授权账号 » 
原创声明 » 未经授权,请勿复制转载,谢谢配合
联系方式 » 
微信:huazi19930927
邮箱:lanserdi@163.com
发布日期 » 2019年6月11日 周二
Github账号登录以留言