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实现文件名批量替换和内容替换
Mar 20 Python
用Python PIL实现几个简单的图片特效
Jan 18 Python
Python实现爬取马云的微博功能示例
Feb 16 Python
python 爬虫百度地图的信息界面的实现方法
Oct 27 Python
Python实现直播推流效果
Nov 26 Python
如何基于Python实现数字类型转换
Feb 07 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
python实现人脸签到系统
Apr 13 Python
python3实现简单飞机大战
Nov 29 Python
pyqt5打包成exe可执行文件的方法
May 14 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 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
JavaScript 动态改变图片大小
2009/06/11 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
Node.js简单入门前传
2017/08/21 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
详解Python中的循环语句的用法
2015/04/09 Python
python去除所有html标签的方法
2015/05/05 Python
Python常用小技巧总结
2015/06/01 Python
python如何实现excel数据添加到mongodb
2015/07/30 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
儿子婚宴答谢词
2014/01/09 职场文书
业务部主管岗位职责
2014/01/29 职场文书
演讲比赛策划方案
2014/06/11 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
Python实现生成bmp图像的方法
2021/06/13 Python
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android
python神经网络 使用Keras构建RNN训练
2022/05/04 Python