首页 > 编程 > Python > 正文

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

2020-01-04 15:25:17
字体:
来源:转载
供稿:网友

本文为大家分享了python微信公众号开发的简单过程,供大家参考,具体内容如下

网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样。真的无语了。只好自己总结一下开发的一些简单流程。

一、注册个微信公众号,这个就不详细说了。

二、登录后台,进入开发中的基本配置,配置下服务器

python,微信公众号

填写url和token,url是服务器的地址,token是自己定义的

三、登录服务器开发

网上很多教程用的什么新浪sae啊,webpy都是很久之前的。现在很多东西都变了,所以我没有用,我用的阿里的服务器以及flask做后端。

代码如下

# coding:utf-8from hashlib import sha1from flask import Flask, requesttoken = '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 Falsedef 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。其他更复杂的功能需要查询微信的文档。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表