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


Posted in Python onMarch 09, 2020

本文为大家分享了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微信公众号开发流程内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现的金山快盘的签到程序
Jan 17 Python
使用python实现拉钩网上的FizzBuzzWhizz问题示例
May 05 Python
python求crc32值的方法
Oct 05 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
python3 flask实现文件上传功能
Mar 20 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
python实现的MySQL增删改查操作实例小结
Dec 19 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
Python完全识别验证码自动登录实例详解
Nov 24 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
将pycharm配置为matlab或者spyder的用法说明
Jun 08 Python
Python 面向对象部分知识点小结
Mar 09 #Python
Django跨域资源共享问题(推荐)
Mar 09 #Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
Mar 09 #Python
Python模块相关知识点小结
Mar 09 #Python
Django操作session 的方法
Mar 09 #Python
Python装饰器用法与知识点小结
Mar 09 #Python
Django中的session用法详解
Mar 09 #Python
You might like
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
laravel请求参数校验方法
2019/10/10 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
容易被忽略的JS脚本特性
2011/09/13 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
python实现接口并发测试脚本
2019/06/25 Python
python通过http下载文件的方法详解
2019/07/26 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
英国高街品牌:Miss Selfridge(塞尔弗里奇小姐)
2016/09/21 全球购物
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
C#怎么让一个窗口居中显示?
2015/10/20 面试题
年会活动策划方案
2014/01/23 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
上甘岭观后感
2015/06/10 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
Mysql开启外网访问
2022/05/15 MySQL