国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python微信公眾號開發簡單流程

2020-02-22 23:33:12
字體:
來源:轉載
供稿:網友

本文為大家分享了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。其他更復雜的功能需要查詢微信的文檔。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安国市| 前郭尔| 阳信县| 新化县| 阿拉善盟| 文山县| 莱芜市| 肥西县| 乌恰县| 德钦县| 来安县| 米泉市| 化德县| 泉州市| 金川县| 东莞市| 井研县| 玛沁县| 怀集县| 安岳县| 辽宁省| 德阳市| 中牟县| 泰安市| 平乡县| 屯昌县| 栖霞市| 星座| 河南省| 金堂县| 连城县| 丽江市| 施甸县| 商南县| 永春县| 门头沟区| 芷江| 顺平县| 长兴县| 宿松县| 图们市|