微信公眾測(cè)試平臺(tái)地址
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
參數(shù).png
代碼如下:
from flask import Flask,request,abort
import hashlib
#常量
WECHAT_TOKEN = "superz"
app = Flask(__name__)
@app.route('/wechat',methods=['GET','POST'])
def wechat():
'''對(duì)接微信公眾號(hào)'''
#參數(shù)是在請(qǐng)求鏈接后攜帶的
#微信的簽名
signature = request.args.get("signature")
#我們簽名所需的兩個(gè)參數(shù)
timestamp = request.args.get("timestamp")
nonce = request.args.get("nonce")
#簽名校驗(yàn)成功后需返回給微信的
echostr = request.args.get("echostr")
#參數(shù)校驗(yàn)
if not all([signature, timestamp, nonce]):
abort(400)
#開(kāi)始簽名
#將數(shù)據(jù)添加進(jìn)數(shù)組
li = [WECHAT_TOKEN, timestamp, nonce]
#排序
li.sort()
#拼接字符串
#不編碼的話python會(huì)報(bào)錯(cuò)
tmp_str = "".join(li).encode('utf-8')
#進(jìn)行sha1加密
sign = hashlib.sha1(tmp_str).hexdigest()
#將自己的簽名與微信進(jìn)行對(duì)比
if signature != sign:
abort(403)
#如果簽名與微信的一致需返回echostr給微信
else:
return echostr
if __name__ == '__main__':
#80端口
app.run(host="172.18.21.197",port=80,debug=True)
啟動(dòng)后鞋囊,點(diǎn)擊微信測(cè)試平臺(tái)的提交按鈕止后,向我們的接口發(fā)送請(qǐng)求
配置成功.png
接口接收到的請(qǐng)求
圖片.png