微信小程序開發--消息推送配置


微信小程序開發消息推送配置這一塊網上都是PHP居多,由於自己在用egg.js,所以用egg.js寫了一套驗證方法。

第一步:填寫服務器配置

登錄微信小程序官網后,在小程序官網的“設置-消息服務器”頁面,管理員掃碼啟用消息服務,填寫服務器地址(URL)、Token 和 EncodingAESKey。

URL是開發者用來接收微信消息和事件的接口URL。 Token可由開發者可以任意填寫,用作生成簽名(該Token會和接口URL中包含的Token進行比對,從而驗證安全性)。 EncodingAESKey由開發者手動填寫或隨機生成,將用作消息體加解密密鑰。

同時,開發者可選擇消息加解密方式:明文模式、兼容模式和安全模式。可以選擇消息數據格式:XML格式或JSON格式。加密方式的默認狀態是明文格式,而數據格式的默認狀態是XML格式。

模式的選擇與服務器配置在提交后都會立即生效,請開發者謹慎填寫及選擇。切換加密方式和數據格式需要提前配置好相關代碼,詳情請參考消息加解密說明

 

第二部:驗證消息來自微信服務端

 開發者提交信息后,微信服務器將發送GET請求到填寫的服務器地址URL上,GET請求攜帶參數如下表所示:

參數 描述
signature 微信加密簽名,signature結合了開發者填寫的token參數和請求中的timestamp參數、nonce參數。
timestamp 時間戳
nonce 隨機數
echostr 隨機字符串

開發者通過檢驗signature對請求進行校驗(下面有校驗方式)。若確認此次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,成為開發者成功,否則接入失敗。加密/校驗流程如下: 1、將token、timestamp、nonce三個參數進行字典序排序 2、將三個參數字符串拼接成一個字符串進行sha1加密 3、開發者獲得加密后的字符串可與signature對比,標識該請求來源於微信

要注意的是簽名驗證通過之后,要返回的echostr字段是字符串,而不是對象。如果返回寫的是 ctx.body = { echostr }就會顯示token驗證失敗。

第三步:依據接口文檔實現業務邏輯

驗證URL有效性成功后即接入生效,成為開發者。至此用戶向小程序客服發送消息、或者進入會話等情況時,開發者填寫的服務器配置URL將得到微信服務器推送過來的消息和事件,開發者可以依據自身業務邏輯進行響應。

此時的路徑和你填寫的URL一致,但是驗證的時候是get請求,此時發送消息是post請求。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM