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 计算两个日期相差多少个月实例代码
May 24 Python
Django数据库操作的实例(增删改查)
Sep 04 Python
python实现简单遗传算法
Mar 19 Python
pycharm远程开发项目的实现步骤
Jan 20 Python
python实现趣味图片字符化
Apr 30 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
python pyenv多版本管理工具的使用
Dec 23 Python
解决pytorch-yolov3 train 报错的问题
Feb 18 Python
python实现在线翻译功能
Mar 03 Python
python编写一个会算账的脚本的示例代码
Jun 02 Python
python em算法的实现
Oct 03 Python
写好Python代码的几条重要技巧
May 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实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
keras多显卡训练方式
2020/06/10 Python
python实现三壶谜题的示例详解
2020/11/02 Python
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
西班牙购买隐形眼镜、眼镜和太阳镜网站:Lentiamo.es
2020/06/11 全球购物
为什么使用接口?
2014/08/13 面试题
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
会展中心部门工作职责
2013/11/27 职场文书
采购主管的岗位职责
2013/12/17 职场文书
个人银行贷款担保书
2014/04/01 职场文书
擅自离岗检讨书
2014/09/12 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
初中作文评语
2014/12/25 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL