微信开发-接收消息和事件

当我们成为开发者之后,用户向公众账号发送消息或者用户的一些操作,微信服务器会推送XML数据包到开发者填写的URL上。这些数据主要分为两类:

①消息

用户在发送消息后,微信就会推送一个xml数据包给开发者,主要分为文本、图片、语音、视频、小视频、地理位置、链接,具体结构可以查看微信官方文档。我们可以在接收到这个这个数据包之后,对它做一个处理转变成

我们可以使用的数据。

注:1.$_GLOBALS["HTTP_RAW_POST_DATA"]用来获取微信post过来的数据,主要因为$_POST只能接收php能识别的数据,所以用这个方法获取到的是原始的POST数据。

  2.simplexml_load_string将xml载入一个对象中,方便以后调用。

  3.获取到这些数据后,可以做出对应的逻辑处理。但是请在5秒内处理并回复,否则就会发起新的请求进行重试,如果不回复或者回复异常数据就会报错“该公众号暂时无法提供服务,请稍后再试”。所以如果不能在

   5秒内回复可以直接选择回复success或者空字符串。

②事件

事件的推送和消息推送基本相似,但是事件加了一个关键的节点用以和消息区分,就是event。在消息中MsgType是text而在事件中则是event,并且会用一个event节点来显示是什么事件,我们可以根据事件的类型来做出

对应的逻辑处理,事件的具体结构可以查看微信官方文档。

原文地址:https://www.cnblogs.com/lina520/p/6137116.html