@
1.查看基本配置
登錄到微信公眾號控制面板后點擊基本配置
這里要講的就是訂閱號
前往注冊微信公眾號
2.修改服務器配置
所以一定要一個服務器,實在沒有就去使用內網穿透
令牌token的作用是來驗證獲取主機身份,比如如果有人知道我的url直接使用瀏覽器或者postman獲取,會造成數據泄露,所以給它加個令牌,只有有令牌的主機才能訪問
EncodingAESKey指的是消息加密的方式,可以不加密,使用明文。但是如果開發者服務器和微信服務器之間經過的網絡設備被其他人抓包,那么消息就會泄露
開始進行對接
url只支持80端口
3.當上面都配置好,點擊提交
此時微信服務器會馬上發送一個請求,所以要打開現在自己的服務器
開發者通過檢驗簽名對請求進行檢驗
若確認此請求來自微信服務器,則原樣返回echostr參數內容
接入生效,成為開發者,否則失敗
4.配置如下
控制台填好
flask代碼實現服務器並允許
from flask import Flask,request,abort
import hashlib
app = Flask(__name__)
#常量 微信的token令牌
WECHAT_TOKEN = "???"
@app.route("/wx")
def wechat():
"""對接微信公眾號服務器"""
#接收微信服務器發送過來的參數
signature = request.args.get("signature")
timestamp = request.args.get("timestamp")
nonce = request.args.get("nonce")
echostr = request.args.get("echostr")
return echostr
# #校驗參數
# if not all([signature,timestamp,nonce,echostr]):
# abort(404)
#
# #按照微信的流程計算簽名
# li = [WECHAT_TOKEN,nonce,echostr]
# #排序
# li.sort()
# #拼接字符串
# tmp_str = "".join(li)
#
# #進行sha1加密 得出正確的一個簽名值
# sign = hashlib.sha1(tmp_str).hexdigest()
#
# #講自己計算的與微信請求的相對比
# if signature != sign:
# #表示不是微信發送的
# abort(403)
# else:
# return echostr
if __name__ == '__main__':
app.run(host="127.0.0.1",port=80)
注意
這里其實只要返回echostr成功,就表示驗證成功了
去掉的注釋是驗證身份的,有錯誤,看下開發文檔就行
這里已經完成配置了