@
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類型的數據(同樣使用工具包打包好)