微信公众平台--4.接收事件推送消息

事件推送应该是微信公众平台里面比较难处理的一个功能,事件比较多并且很分散,不知道啥时候有事件过来。服务器

在微信用户和公众号产生交互的过程当中,用户的某些操做会使得微信服务器经过事件推送的形式通知到开发者的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>