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连接mysql数据库示例(做增删改操作)
Dec 31 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
May 19 Python
python Matplotlib画图之调整字体大小的示例
Nov 20 Python
Python实现感知机(PLA)算法
Dec 20 Python
Python面向对象编程之继承与多态详解
Jan 16 Python
对python-3-print重定向输出的几种方法总结
May 11 Python
Python3 翻转二叉树的实现
Sep 30 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
python通过文本在一个图中画多条线的实例
Feb 21 Python
利用python画出AUC曲线的实例
Feb 28 Python
Python3.7安装pyaudio教程解析
Jul 24 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 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原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
用JS实现选项卡
2020/03/23 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Python图算法实例分析
2016/08/13 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
建筑毕业生自我鉴定
2013/10/18 职场文书
学生就业推荐信
2013/11/13 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
运动会广播稿100字
2014/09/14 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
大学毕业生个人总结
2015/02/28 职场文书
毕业实习感受与体会
2015/05/26 职场文书