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在指定目录下查找gif文件的方法
May 04 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
Python3实现的简单三级菜单功能示例
Mar 12 Python
python队列原理及实现方法示例
Nov 27 Python
解决python replace函数替换无效问题
Jan 18 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
keras.utils.to_categorical和one hot格式解析
Jul 02 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 Python
python实现ROA算子边缘检测算法
Apr 05 Python
OpenCV绘制圆端矩形的示例代码
Aug 30 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中调用其他系统http接口的方法说明
2014/02/28 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
angularjs 处理多个异步请求方法汇总
2015/01/06 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
python设置windows桌面壁纸的实现代码
2013/01/28 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
深入浅析python 中的匿名函数
2018/05/21 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
python版大富翁源代码分享
2018/11/19 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
Java面试题:为什么要用Java
2012/05/11 面试题
省优秀教师事迹材料
2014/01/30 职场文书
商场中秋节活动方案
2014/02/07 职场文书
投资协议书范本
2014/04/21 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang