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 ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
进一步探究Python中的正则表达式
Apr 28 Python
Python的Django框架中的表单处理示例
Jul 17 Python
Python实现模拟登录及表单提交的方法
Jul 25 Python
python解决方案:WindowsError: [Error 2]
Aug 28 Python
使用Python的turtle模块画图的方法
Nov 15 Python
如何优雅地改进Django中的模板碎片缓存详解
Jul 04 Python
Python实现EXCEL表格的排序功能示例
Jun 25 Python
Python中的几种矩阵乘法(小结)
Jul 10 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
深入解析NumPy中的Broadcasting广播机制
May 30 Python
Python实现PIL图像处理库绘制国际象棋棋盘
Jul 16 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与MySQL交互使用详解
2006/10/09 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
ajax异步请求详解
2017/01/06 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
深入解析Python中的上下文管理器
2016/06/28 Python
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
Python自动化测试中yaml文件读取操作
2020/08/20 Python
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
linux面试相关问题
2012/08/11 面试题
《要下雨了》教学反思
2014/02/17 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
元旦晚会活动总结
2014/07/09 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
采购员岗位职责
2015/02/03 职场文书
投标单位介绍信
2015/05/05 职场文书