@(接收和发送消息-基本说明与实现)
1.原理
2.接收普通消息
其他消息类似参考官方文档
3.接收代码普通消息代码实现
from flask import Flask,request,abort import xmltodict import time app = Flask(__name__) #常量 微信的token令牌 WECHAT_TOKEN = "xxxx" @app.route("/wx",methods=["GET","POST"]) def wechat(): #这里其实可以做一个验证的 xml_to_dct = xmltodict.parse(request.data) print(xml_to_dct) xml_dict = xml_to_dct.get("xml") #提取信息 msg_type = xml_dict.get("MsgType") resp_dict = {} if msg_type == "text": #表示发送的文本信息 #构造返回值,经由微信服务器回复给用户的内容 resp_dict = { "xml":{ "ToUserName":xml_dict.get("FromUserName"),"FromUserName":xml_dict.get("ToUserName"),"CreateTime":int(time.time()),"MsgType":"text","Content":xml_dict.get("Content") } } resp = xmltodict.unparse(resp_dict) return resp if __name__ == '__main__': app.run(host="127.0.0.1",port=80)
注意 1.在微信公众号控制台已经绑定了自己的服务器了 2.这里使用的flask框架处理请求 3.这里演示了处理普通文本消息,其他消息就以此类比 4.关注用户发送消息给公众号,此时微信官方服务器收到消息转发到自己部署的服务器上,转发过来的数据类型为xml,使用xmltodict包将xml转化为python自带数据类型-字典,然后进行相应的处理,返回数据时也要使用xml类型的数据(同样使用工具包打包好)