python微信公众号开发简单流程


Posted in Python onMarch 23, 2018

本文为大家分享了python微信公众号开发的简单过程,供大家参考,具体内容如下

网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样。真的无语了。只好自己总结一下开发的一些简单流程。

一、注册个微信公众号,这个就不详细说了。

二、登录后台,进入开发中的基本配置,配置下服务器

python微信公众号开发简单流程

填写url和token,url是服务器的地址,token是自己定义的

三、登录服务器开发

网上很多教程用的什么新浪sae啊,webpy都是很久之前的。现在很多东西都变了,所以我没有用,我用的阿里的服务器以及flask做后端。

代码如下

# coding:utf-8
from hashlib import sha1
from flask import Flask, request

token = 'xxxxxx'

app = Flask(__name__)

def get_update(token, timestamp, nonce):
  arguments = ''
  for k in sorted([token, timestamp, nonce]):
    arguments = arguments + str(k)
  m = sha1()
  m.update(arguments.encode('utf8'))
  return m.hexdigest()

def check_signature():
  signature = request.args.get('signature', '')
  timestamp = request.args.get('timestamp', '')
  nonce = request.args.get('nonce', '')
  check = get_update(token, timestamp, nonce)
  return True if check == signature else False

def parse_xml(data):
  try:
    import xml.etree.cElementTree as ET
  except ImportError:
    import xml.etree.ElementTree as ET
    root = ET.fromstring(data)
    datas = '<xml>'
    for child in root:
      if child.tag == 'ToUserName':
        toUser = child.text
        datas += '<FromUserName>%s</FromUserName>' % toUser
      elif child.tag == 'FromUserName':
        fromUser = child.text
        datas += '<ToUserName>%s</ToUserName>' % fromUser
      else:
        datas += '<' + child.tag + '>'
        datas += child.text
        datas += '</' + child.tag + '>'
    datas += '</xml>'
    return datas

@app.route('/weixin', methods=['GET', 'POST'])
def weixinInterface():
  if check_signature:
    if request.method == 'GET':
      echostr = request.args.get('echostr', '')
      return echostr
    elif request.method == 'POST':
      data = request.data
      msg = parse_xml(data)
      return msg
  else:
    return 'signature error'

if __name__ == '__main__':
  app.run(host='0.0.0.0')

一开始的话微信会让你验证填写的url,验证方式是通过传入时间戳timestamp,随机数nonce,token事先约定好的,echostr随机字符串,以及签名signature,需要根据时间戳,随机数,token的值进行字典序排序,然后用sha1加密得到签名,检验签名是否一致,是的话返回随机字符串echostr。如果校验成功,就可以提交了,提交之后就可以启用服务器配置。

上面的代码还包括了如果用户发送信息给公众号,返回该信息,当然只是很简单的解析xml以及构造xml。其他更复杂的功能需要查询微信的文档。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python读取图片属性信息的实现方法
Sep 11 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
Python实现的维尼吉亚密码算法示例
Apr 12 Python
用pandas按列合并两个文件的实例
Apr 12 Python
python购物车程序简单代码
Apr 18 Python
Python3多进程 multiprocessing 模块实例详解
Jun 11 Python
python判断计算机是否有网络连接的实例
Dec 15 Python
Python lambda表达式用法实例分析
Dec 25 Python
python requests post多层字典的方法
Dec 27 Python
Pycharm新手使用教程(图文详解)
Sep 17 Python
Python pygame实现中国象棋单机版源码
Jun 20 Python
python3如何将docx转换成pdf文件
Mar 23 #Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 #Python
python字典快速保存于读取的方法
Mar 23 #Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
Mar 23 #Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 #Python
Python自定义线程类简单示例
Mar 23 #Python
python如何实现内容写在图片上
Mar 23 #Python
You might like
async和DOM Script文件加载比较
2014/07/20 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
Laravel框架搜索分页功能示例
2019/02/01 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
将Python代码打包为jar软件的简单方法
2015/08/04 Python
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
Python读写docx文件的方法
2018/05/08 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
建筑项目策划书
2014/01/13 职场文书
取保候审保证书
2014/04/30 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
平安家庭事迹材料
2014/12/20 职场文书
北京英文导游词
2015/02/12 职场文书
公司财务部岗位职责
2015/04/14 职场文书
小学教师见习总结
2015/06/23 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
MySQL学习之基础操作总结
2022/03/19 MySQL