騰訊雲主機Node.js環境下的微信公眾號平台接入

介紹如何在已經搭建好Nginx+Node.js環境的雲主機上一步一步接入微信公眾平台

工具/原料

Chrome瀏覽器

方法/步驟

通過Chrome瀏覽器的Secure Shell插件,以SSH的方式遠程登錄到雲主機

在微信公眾平台的開發者基本配置中,填寫伺服器的基本配置

1. URL是雲主機的web伺服器允許微信伺服器的訪問地址

2. Token是微信伺服器和雲主機web伺服器互相認證的一串口令,由3~32個字符組成,這裡的配置和後面node伺服器端程序要保持一致,否則將接入失敗

3. EncodingAESKey採用隨機生成的方式產生

4. 配置完之後先慢點提交,等後面雲主機伺服器端的Node應用打開再提交

雲主機Node伺服器需要驗證消息的確來自微信伺服器,在開發者按了提交按鈕後,微信伺服器將發送GET請求到填寫的伺服器地址URL上,GET請求攜帶的參數有signature,timestamp,nonce,echostr

這一步我們根據接入規則來編寫伺服器端的接入驗證程序。

1. 將token、timestamp、nonce三個參數進行字典序排序

2. 將三個參數字符串拼接成一個字符串進行sha1加密

3. 開發者獲得加密後的字符串可與signature對比,標識該請求來源於微信

程序中需要使用sha1加密,我們調用node的crypto包

需要注意,程序中的token要和之前微信公眾平台設置的一致

使用forever命令讓node應用在後台持續運行

現在可以在微信公眾平台提交伺服器的配置

如果頁面顯示提交成功,說明我們的雲主機已經成功接入微信公眾平台了

注意事項

因為微信只支持80埠和443埠,所以Node伺服器需要用Nginx做反向代理
為了使Node應用在後台持續運行,需要使用forever工具來創建守護進程

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場