为微信公众号开发文本消息
来源:网络收集 点击: 时间:2024-08-11在学习开发之前先了解一下微信官方推荐的系统架构。微信官方推荐的建构适合比较大型的公众号,整个系统分为业务逻辑层、AccessToken中控服务器、API-Proxy三部分。由于微信接口需要使用access_token作为全局唯一接口调用凭据,同时access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。所以微信推荐设置独立的AccessToken中控服务器。API-Proxy层可以有效的将公众号后台与微信接口分开,避免直接暴漏内部接口,有效防止恶意攻击,提高安全性。
如果只是一般开发的话,可以省略API-Proxy,另外也可以适当简化AccessToken层。

接下来讲解如何开发文本消息功能。下图是文本消息的基本流程,微信的所有消息都是以XML的形式传递的,文本消息的XML格式如下,其中MsgType表示当前消息是文本消息:
xmlToUserName!]/ToUserName FromUserName!]/FromUserName CreateTime1460537339/CreateTime MsgType!]/MsgType Content!]/Content MsgId6272960105994287618/MsgId /xml

获取文本消息,看过我另外一篇经验就知道了,微信后台验证使用GET请求,而消息发送就是使用的POST请求,了解这个规范之后,就可以写消息接收方法了。首先判断是否为POST请求:
elif request.method == POST:
如果是,则接收全部HTTP内容:
data = request.read()
由于不论是文本消息、图片消息还是其他什么类型的消息,它们的XML都包含
ToUserName、FromUserName、CreateTime、MsgId,MsgType几个参数,因此首先编写一个通用方法用于取得xml对象以及消息类型:def get_message_and_type(message),接下来在POST请求中取得这几类通用值。
然后根据get_message_and_type()所返回的消息类型,取得具体消息的其它参数。
接下来使用这些值创建一个新XML字符串:
def create_text_message(ToUserName, FromUserName, CreateTime, Content, MsgId)。
最后将新组建的xml字符串返回给微信服务器即可:
return HttpResponse(content)



学会如何处理文本后,就可以扩展到其它消息了。

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1106023.html