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基于pygame实现的弹力球效果(附源码)
Nov 11 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
Pandas 同元素多列去重的实例
Jul 03 Python
linux中如何使用python3获取ip地址
Jul 15 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
Python 寻找局部最高点的实现
Dec 05 Python
Django中密码的加密、验密、解密操作
Dec 19 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
pandas分批读取大数据集教程
Jun 06 Python
Python实现给PDF添加水印的方法
Jan 25 Python
Python 求向量的余弦值操作
Mar 04 Python
virtualenv隔离Python环境的问题解析
Jun 21 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
提升PHP执行速度全攻略(下)
2006/10/09 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
Vue.js 中的 v-cloak 指令及使用详解
2018/11/19 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
解决python "No module named pip" 的问题
2018/10/13 Python
基于python的Paxos算法实现
2019/07/03 Python
对Python中画图时候的线类型详解
2019/07/07 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
结构和类有什么异同
2012/07/16 面试题
开业主持词
2014/03/21 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
卖房授权委托书样本
2014/10/05 职场文书
2014年公务员工作总结
2014/11/18 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
倡议书作文
2015/01/19 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python
Python Pandas模块实现数据的统计分析的方法
2021/06/24 Python