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判断IP地址合法性的方法实例
Mar 13 Python
python黑魔法之编码转换
Jan 25 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 Python
go和python变量赋值遇到的一个问题
Aug 31 Python
详解python中的装饰器
Jul 10 Python
Python模拟百度自动输入搜索功能的实例
Feb 14 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
python:按行读入,排序然后输出的方法
Jul 20 Python
调试Django时打印SQL语句的日志代码实例
Sep 12 Python
Python列表切片常用操作实例解析
Dec 16 Python
基于Python把网站域名解析成ip地址
May 25 Python
Pycharm如何自动生成头文件注释
Nov 14 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
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
laravel入门知识点整理
2020/09/15 PHP
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
2011/03/01 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
Ant Design的Table组件去除
2020/10/24 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
浅谈python中的占位符
2017/11/09 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
物流经理自我评价
2013/09/23 职场文书
珍珠奶茶店创业计划书
2014/01/11 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
高中军训感言1000字
2014/03/01 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
2015年母亲节寄语
2015/03/23 职场文书
西安事变观后感
2015/06/12 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python