@

1.主要逻辑

使用的是flask服务器

就使用一个函数处理请求

第一个是验证服务器,返回微信服务器给的字符串就表示验证成功

第二是要处理微信服务器发送过来的请求,解析json字符串

第三就是处理消息,分为事件处理和消息处理

然后得到处理后的数据,封装好就返回给微信服务器,再交给用户

这里的配置信息是写在json配置文件中的,方便管理

2.代码

from flask import Flask,request,abort
import xmltodict
import json
from function import EventProcessing,MessageProcessing
with open(r'../resource/SET.json', 'r', encoding="utf-8") as f:
SET = json.load(f)
WECHAT_TOKEN = SET["WECHAT_TOKEN"] app = Flask(__name__)
@app.route("/wx",methods=["GET","POST"])
def wechat():
#1.验证微信服务器,这里偷懒,返回字符串就完事,实际要验证
echostr = request.args.get("echostr")
if echostr is not None:
return echostr
#2.解析消息类型
xml_to_dct = xmltodict.parse(request.data)
xml_dict = xml_to_dct.get("xml")
msg_type = xml_dict.get("MsgType") #3.处理消息
if msg_type == "event":
resp = EventProcessing.Processing(xml_dict,xml_dict.get("Event"))
else:
resp =MessageProcessing.Processing(xml_dict,msg_type,SET) #4.返回消息
resp = xmltodict.unparse(resp)
return resp if __name__ == '__main__':
app.run(host="127.0.0.1",port=80)

关于作者

个人博客网站

个人GitHub地址

个人公众号:

最新文章

  1. 最有用的Linux命令行使用技巧集锦
  2. 安装服务Memcached+Nginx+Php linux下安装
  3. oracle 之路目录
  4. ACM1228_STL的应用
  5. PHP优化的总结
  6. iOS 关于时间戳的一些细节
  7. 设置Android设备在睡眠期间始终保持WLAN开启的代码实现
  8. Jquery remove()和empty()
  9. mysql按某个列执行1-N排名的问题
  10. js中匿名函数和回调函数
  11. recovery 恢复出厂设置失败Data wipe failed
  12. swift class的虚函数表、扩展、@objc修饰、虚函数的派发方式研究
  13. 浏览器的兼容性(CSS浏览器兼容性、CSS hack)
  14. Netty权威指南之Netty入门程序
  15. BN层
  16. Git_使用GitHub
  17. **python中的类和他的成员
  18. hdu1061Rightmost Digit(快速幂取余)
  19. 51nod 1363 最小公倍数之和 ——欧拉函数
  20. Oracle 11g 新特性 --SQL Plan Management 说明

热门文章

  1. 攻克弹唱第九课(如何运用好G大调和弦)
  2. Java命令行启动jar包更改默认端口以及配置文件的几种方式
  3. Go 大数据生态迎来重要产品 CDS
  4. Java基础教程——注释
  5. hibernate一对多,细节讲解
  6. 网骗欺诈?网络裸奔?都是因为 HTTP?
  7. 010 editor的使用
  8. 冰河开源了全网首个完全开源的分布式全局有序序列号(分布式ID)框架!!
  9. 老猿学5G随笔:5G系统构成
  10. 如何使用 K8s 两大利器"审计"和"事件"帮你摆脱运维困境?