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使用PythonMagick将jpg图片转换成ico图片的方法
Mar 26 Python
Python 功能和特点(新手必学)
Dec 30 Python
python获取list下标及其值的简单方法
Sep 12 Python
Python机器学习之K-Means聚类实现详解
Feb 22 Python
Python实现基于C/S架构的聊天室功能详解
Jul 07 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
python实现桌面壁纸切换功能
Jan 21 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 Python
关于Python内存分配时的小秘密分享
Sep 05 Python
TensorFLow 变量命名空间实例
Feb 11 Python
Python爬虫requests库多种用法实例
May 28 Python
教你用python实现一个无界面的小型图书管理系统
May 21 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
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
PHP写的求多项式导数的函数代码
2012/07/04 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
Opacity.js
2007/01/22 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
简单说说tomcat的配置
2013/05/28 面试题
甲方资料员岗位职责
2013/12/13 职场文书
捐款活动总结
2014/08/27 职场文书
补充协议书
2015/01/28 职场文书
新闻通讯稿模板
2015/07/22 职场文书
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
python超详细实现完整学生成绩管理系统
2022/03/17 Python