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脚本实现查找webshell的方法
Jul 31 Python
使用Python的Scrapy框架编写web爬虫的简单示例
Apr 17 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
Anaconda 查看、创建、管理和使用python环境的方法
Dec 03 Python
python处理RSTP视频流过程解析
Jan 11 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
python输入中文的实例方法
Sep 14 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
python中reload重载实例用法
Dec 15 Python
python 基于opencv实现图像增强
Dec 23 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
Jan 08 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
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
php中file_exists函数使用详解
2015/05/08 PHP
php的4种常用运行方式详解
2016/12/22 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
2015/11/02 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
vue-prop父组件向子组件进行传值的方法
2018/03/01 Javascript
Python探索之Metaclass初步了解
2017/10/28 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
python tkinter实现屏保程序
2019/07/30 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
Linux中如何用命令创建目录
2016/12/02 面试题
最新奶茶店创业计划书
2014/01/25 职场文书
2014年网管工作总结
2014/12/11 职场文书
责任书格式
2015/01/29 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
python数据分析之用sklearn预测糖尿病
2021/04/22 Python
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers