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实现字典去除重复的方法示例
Jul 31 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
python中的闭包函数
Feb 09 Python
python如何压缩新文件到已有ZIP文件
Mar 14 Python
使用PIL(Python-Imaging)反转图像的颜色方法
Jan 24 Python
python区块及区块链的开发详解
Jul 03 Python
Python产生一个数值范围内的不重复的随机数的实现方法
Aug 21 Python
线程安全及Python中的GIL原理分析
Oct 29 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
python 如何调用远程接口
Sep 11 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
Jun 11 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
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
smarty实现多级分类的方法
2014/12/05 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
ie focus bug 解决方法
2009/09/03 Javascript
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
Vue响应式原理详解
2017/04/18 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
Python读写Redis数据库操作示例
2014/03/18 Python
python开发之for循环操作实例详解
2015/11/12 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
python中pickle模块浅析
2020/12/29 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
活动总结模板
2014/05/09 职场文书
应届大专生自荐书
2014/06/16 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android