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

首頁 > 編程 > Python > 正文

python微信公眾號開發(fā)簡單流程

2020-01-04 15:25:17
字體:
供稿:網(wǎng)友

本文為大家分享了python微信公眾號開發(fā)的簡單過程,供大家參考,具體內(nèi)容如下

網(wǎng)上有很多微信公眾號的開發(fā)教程,但是都是好幾年前的了,而且很多都是抄襲其他人的,內(nèi)容幾乎一模一樣。真的無語了。只好自己總結(jié)一下開發(fā)的一些簡單流程。

一、注冊個微信公眾號,這個就不詳細(xì)說了。

二、登錄后臺,進(jìn)入開發(fā)中的基本配置,配置下服務(wù)器

python,微信公眾號

填寫url和token,url是服務(wù)器的地址,token是自己定義的

三、登錄服務(wù)器開發(fā)

網(wǎng)上很多教程用的什么新浪sae啊,webpy都是很久之前的。現(xiàn)在很多東西都變了,所以我沒有用,我用的阿里的服務(wù)器以及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,隨機(jī)數(shù)nonce,token事先約定好的,echostr隨機(jī)字符串,以及簽名signature,需要根據(jù)時間戳,隨機(jī)數(shù),token的值進(jìn)行字典序排序,然后用sha1加密得到簽名,檢驗簽名是否一致,是的話返回隨機(jī)字符串echostr。如果校驗成功,就可以提交了,提交之后就可以啟用服務(wù)器配置。

上面的代碼還包括了如果用戶發(fā)送信息給公眾號,返回該信息,當(dāng)然只是很簡單的解析xml以及構(gòu)造xml。其他更復(fù)雜的功能需要查詢微信的文檔。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴南区| 北海市| 健康| 万盛区| 平潭县| 哈巴河县| 崇左市| 江源县| 舞钢市| 尼玛县| 尼勒克县| 保德县| 乌拉特前旗| 泰安市| 阳朔县| 潼关县| 亚东县| 遂川县| 蛟河市| 毕节市| 萍乡市| 阜宁县| 温泉县| 方山县| 茌平县| 台山市| 华安县| 鄱阳县| 沅陵县| 托克逊县| 江城| 林州市| 沭阳县| 塘沽区| 门头沟区| 西乡县| 通州区| 鞍山市| 平顶山市| 竹北市| 萨迦县|