python tornado微信开发入门代码


Posted in Python onAugust 24, 2018

本文实例为大家分享了python tornado微信开发的具体代码,供大家参考,具体内容如下

#微信入门代码
#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-

import tornado.ioloop
import tornado.web
import hashlib
import xml.etree.ElementTree as ET
import time

def check_signature(signature, timestamp, nonce):
  # 微信公众平台里输入的token
  token="linden"
  #字典序排序
  list = [token,timestamp,nonce]
  list.sort()
  sha1=hashlib.sha1()
  map(sha1.update,list)
  hashcode=sha1.hexdigest()
  return hashcode == signature

class MainHandler(tornado.web.RequestHandler):
  def get(self):
    signature = self.get_argument('signature')
    timestamp = self.get_argument('timestamp')
    nonce = self.get_argument('nonce')
    echostr = self.get_argument('echostr')
    if check_signature(signature, timestamp, nonce):
      self.write(echostr)
    else:
      self.write('fail')
  def post(self): 
    body = self.request.body
    data = ET.fromstring(body)
    toUser = data.find('ToUserName').text
    fromUser = data.find('FromUserName').text
    createTime = int(time.time())
    msgType = data.find('MsgType').text
    content = data.find('Content').text
    msgId= data.find("MsgId").text
    # from与to在返回的时候要交换
    textTpl = """<xml>
      <ToUserName><![CDATA[%s]]></ToUserName>
      <FromUserName><![CDATA[%s]]></FromUserName>
      <CreateTime>%s</CreateTime>
      <MsgType><![CDATA[%s]]></MsgType>
      <Content><![CDATA[%s]]></Content>
      <MsgId>%s</MsgId>
      </xml>"""
    out = textTpl % (fromUser, toUser, createTime, msgType, content, msgId)
    self.write(out)

application = tornado.web.Application([
  (r"/", MainHandler),
])

if __name__ == "__main__":
  application.listen(80)
  tornado.ioloop.IOLoop.instance().start()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过scapy获取局域网所有主机mac地址示例
May 04 Python
详解详解Python中writelines()方法的使用
May 25 Python
Python中Django框架利用url来控制登录的方法
Jul 25 Python
Python使用numpy模块创建数组操作示例
Jun 20 Python
django用户登录和注销的实现方法
Jul 16 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
Jul 18 Python
详谈tensorflow gfile文件的用法
Feb 05 Python
Python实现ATM系统
Feb 17 Python
Django QuerySet查询集原理及代码实例
Jun 13 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 Python
pandas apply多线程实现代码
Aug 17 Python
python 制作本地应用搜索工具
Feb 27 Python
python使用rpc框架gRPC的方法
Aug 24 #Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 #Python
python中文编码与json中文输出问题详解
Aug 24 #Python
详解Django解决ajax跨域访问问题
Aug 24 #Python
Python面向对象之反射/自省机制实例分析
Aug 24 #Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 #Python
Python日志模块logging基本用法分析
Aug 23 #Python
You might like
如何使用脚本模仿登陆过程
2006/11/22 PHP
PHP之变量、常量学习笔记
2008/03/27 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
深入浅析Python的类
2018/06/22 Python
Pycharm更换python解释器的方法
2018/10/29 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
2018/11/30 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
基于python实现雪花算法过程详解
2019/11/16 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
会计专业个人求职信范文
2014/01/08 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
销售目标责任书
2014/07/23 职场文书
社区文艺活动方案
2014/08/19 职场文书
2014年协会工作总结
2014/11/22 职场文书
2014年幼师工作总结
2014/11/22 职场文书
求职自我评价范文
2015/03/09 职场文书
2015年食堂工作总结报告
2015/04/23 职场文书
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android