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 相关文章推荐
Flask框架的学习指南之用户登录管理
Nov 20 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
python Flask 装饰器顺序问题解决
Aug 08 Python
python3正则提取字符串里的中文实例
Jan 31 Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 Python
python2使用bs4爬取腾讯社招过程解析
Aug 14 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
python中matplotlib条件背景颜色的实现
Sep 02 Python
Python插入Elasticsearch操作方法解析
Jan 19 Python
如何通过命令行进入python
Jul 06 Python
基于Python爬取素材网站音频文件
Oct 21 Python
django中ImageField的使用详解
Dec 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
Javascript - HTML的request类
2006/07/15 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
Redux实现组合计数器的示例代码
2018/07/04 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
python发送伪造的arp请求
2014/01/09 Python
Python读写文件方法总结
2015/06/09 Python
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
python实现简单遗传算法
2018/03/19 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
电子商务专业个人的自我评价分享
2013/10/29 职场文书
老公爱的承诺书
2014/03/31 职场文书
班干部演讲稿
2014/04/24 职场文书
大学新学期计划书
2014/04/28 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
检讨书范文300字
2015/01/28 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python