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检测远程服务器tcp端口的方法
Mar 14 Python
利用python爬取散文网的文章实例教程
Jun 18 Python
Python3.6简单的操作Mysql数据库的三个实例
Oct 17 Python
python 自定义对象的打印方法
Jan 12 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
Feb 21 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
Python坐标轴操作及设置代码实例
Jun 04 Python
怎么解决pycharm license Acti的方法
Oct 28 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 Python
python数字图像处理:图像简单滤波
Jun 28 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来处理多个提交任务
2006/10/09 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
使用隐藏的new来创建对象
2011/03/29 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
python取代netcat过程分析
2018/02/10 Python
Python的argparse库使用详解
2018/10/09 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
如何通过python实现全排列
2020/02/11 Python
Python3实现飞机大战游戏
2020/04/24 Python
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
EJB的基本架构
2016/09/22 面试题
董事长秘书职责
2014/01/31 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
关于环保的标语
2014/06/13 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
python正则表达式re.search()的基本使用教程
2021/05/21 Python
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android