消息的接收和发送可以说是核心部分,这是用户和公众号最主要的信息交流。
1、官网文档已说明,当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。这里有个坑,就是微信服务器在一段时间没收到响应的话,就会再次发送请求到你的URL上。网上大多的解决方法是收到请求后返回一个空串(或“success”字符串)给微信,微信收到响应后就不会重复发送请求。但这方法并不理想,如果网络有延迟的话还是会出问题,目前没找到更好的解决方法。
2、接受消息:
当用户给公众号发一条信息时,微信会发下面数据给你的URL
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1515023230</CreateTime>
<MsgType><![CDATA[text]]></MsgType>