域名注冊(cè)
如果您還沒(méi)有域名,可以在騰訊云、阿里云、西部數(shù)碼上選購(gòu)。
域名解析
域名購(gòu)買(mǎi)完成后, 需要將域名解析到云主機(jī)上,云主機(jī)的 IP列如 為:
購(gòu)買(mǎi)的域名,可以到控制臺(tái)添加解析記錄:
域名設(shè)置解析后需要過(guò)一段時(shí)間才會(huì)生效,通過(guò) ping
命令檢查域名是否生效 ,如:
如果 ping 命令返回的信息中含有你設(shè)置的解析的 IP 地址,說(shuō)明解析成功。
在開(kāi)始搭建我們的訂閱號(hào)服務(wù)器之前,需要先拿到訂閱號(hào)相關(guān)信息。
注冊(cè)開(kāi)發(fā)者賬號(hào)
如果你還不是微信訂閱號(hào)開(kāi)發(fā)者,請(qǐng)先在微信公眾平臺(tái)注冊(cè):
注冊(cè)開(kāi)發(fā)者賬號(hào)
獲取微信訂閱號(hào)公眾平臺(tái)認(rèn)證字段信息
我們需要獲取3個(gè)字段:AppID Token EncodingAESKey。
登錄微信公眾平臺(tái),依次進(jìn)入 開(kāi)發(fā) - 基本配置可以拿到 AppID。在基本配置-服務(wù)器配置-修改配置表單中:
URL 填第一步申請(qǐng)的域名;
Token 用戶(hù)根據(jù)提示填寫(xiě),用于后面校驗(yàn)服務(wù)端合法性;
EncodingAESKey 點(diǎn)擊隨機(jī)生成按鈕來(lái)生成。
當(dāng)點(diǎn)擊表單
提交
按鈕時(shí),微信會(huì)通過(guò) Token 來(lái)校驗(yàn) URL 的合法性,這個(gè)我們?cè)诤竺娌襟E實(shí)現(xiàn),此界面暫時(shí)保留不關(guān)閉。
AppID Token EncodingAESKey 這3個(gè)參數(shù)
下面的步驟,將帶大家在服務(wù)器上使用 Node 和 Express 搭建一個(gè) HTTP 服務(wù)器
安裝 NodeJS 和 NPM
使用下面的命令安裝 NodeJS 和 NPM
安裝中
安裝完成
安裝完成后,使用下面的命令測(cè)試安裝結(jié)果
成功
編寫(xiě) HTTP Server 源碼
創(chuàng)建工作目錄
使用下面的命令在服務(wù)器創(chuàng)建一個(gè)工作目錄:
進(jìn)入此工作目錄
創(chuàng)建 package.json
在剛才創(chuàng)建的工作目錄創(chuàng)建 package.json,添加我們服務(wù)器包的名稱(chēng)和版本號(hào),可參考下面的示例。
示例代碼:/data/release/weapp/package.json
完成后,使用 Ctrl + S保存文件
添加 Server 源碼
在工作目錄創(chuàng)建 app.js,使用 Express.js 來(lái)監(jiān)聽(tīng) 5050 端口,可參考下面的示例代碼(注:請(qǐng)將 app.js文件中的token/appid/encodingAESKey等配置項(xiàng)替換為您的訂閱號(hào)對(duì)應(yīng)的取值)。
示例代碼:/data/release/weapp/app.js
本實(shí)驗(yàn)會(huì)以 5050 端口的打開(kāi)作為實(shí)驗(yàn)步驟完成的依據(jù),為了后面的實(shí)驗(yàn)步驟順利進(jìn)行,請(qǐng)不要使用其它端口號(hào)
安裝 PM2
在開(kāi)始之前,我們先來(lái)安裝 [PM2]
PM2 安裝時(shí)間可能稍長(zhǎng),請(qǐng)耐心等候
安裝 Express
我們的服務(wù)器源碼里使用到了 Express 模塊,下面的命令使用 NPM 來(lái)安裝 Express
安裝 Wechat
我們的服務(wù)器源碼里使用到了 Wechat 模塊,下面的命令使用 NPM 來(lái)安裝 Wechat
啟動(dòng)服務(wù)
安裝完成后,使用 PM2 來(lái)啟動(dòng) HTTP 服務(wù)
現(xiàn)在,您的 HTTP 服務(wù)已經(jīng)在 http://<您的 cvm="" ip="" 地址="">:5050 運(yùn)行
要查看服務(wù)輸出的日志,可以使用下面的命令:
如果要重啟服務(wù),可以使用下面的命令:
我們使用 PM2 來(lái)進(jìn)行 Node 進(jìn)程的運(yùn)行、監(jiān)控和管理
NPM 倉(cāng)庫(kù)在國(guó)內(nèi)訪(fǎng)問(wèn)速度可能不太理想,如果實(shí)在太慢可以嘗試使用 CNPM 的 Registry 進(jìn)行安裝:
npm install pm2 -g --registry=https://r.cnpmjs.org/
NodeJs只是偵聽(tīng)的機(jī)器上的 5050
端口,我們使用 nginx
偵聽(tīng) 80
端口提供對(duì)外域名服務(wù)
安裝 Nginx
在 CentOS 上,可直接使用 yum
來(lái)安裝 Nginx
安裝完成后,使用 nginx
命令啟動(dòng) Nginx:
此時(shí),訪(fǎng)問(wèn) http://<您的域名> 可以看到 Nginx 的測(cè)試頁(yè)面
如果無(wú)法訪(fǎng)問(wèn),請(qǐng)重試用
nginx -s reload
命令重啟 Nginx
配置 HTTP 反向代理
外網(wǎng)用戶(hù)訪(fǎng)問(wèn)服務(wù)器的 Web 服務(wù)由 Nginx 提供,Nginx 需要配置反向代理才能使得 Web 服務(wù)轉(zhuǎn)發(fā)到本地的 Node 服務(wù)。
Nginx 配置目錄在 /etc/nginx/conf.d,我們?cè)谠撃夸泟?chuàng)建 wechat.conf
示例代碼:/etc/nginx/conf.d/wechat.conf
按 Ctrl + S
保存配置文件,讓 Nginx 重新加載配置使其生效:
在瀏覽器通過(guò) http 的方式訪(fǎng)問(wèn)你解析的域名來(lái)測(cè)試 HTTP 是否成功啟動(dòng)
使用Server端回復(fù)微信消息
提交服務(wù)端配置
我們將第二步微信公眾平臺(tái)中保留的表單提交,同時(shí)將 基本配置- 服務(wù)器配置啟用
您的域名>您的>聯(lián)系客服