微信开发-接收消息和事件
当我们成为开发者之后,用户向公众账号发送消息或者用户的一些操作,微信服务器会推送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节点来显示是什么事件,我们可以根据事件的类型来做出
对应的逻辑处理,事件的具体结构可以查看微信官方文档。