首先感謝大佬分享的視頻疆拘,鏈接:https://www.isharebest.com/nodejswechat.htm
前期準備:提供外網(wǎng)IP地址的服務器(阿里云寝并,騰訊云箫措,ngrok等等)、安裝好環(huán)境Node食茎、webstorm等、如果是個人開發(fā)可以使用測試公眾號(https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login)馏谨。
我使用的是騰訊云别渔,購買后,在服務器上也安裝好Node環(huán)境惧互,最好使用最新版本的Node哎媚,因為我開始用的不是最新版本,后面安裝Koa的時候喊儡,提示因為版本不對發(fā)生錯誤拨与。
Node版本更新,可以直接在官網(wǎng)上https://www.baidu.com/link?url=ylySX4--5jfmAeY4KU_ZJ5rnVvsVkMce2yY3owBNGM8FSCnuJsFcIl4Ak4yhHrqd&wd=&eqid=8234e99f00043584000000025a87d2db下載最新版本點擊安裝即可艾猜。
接口配置信息代碼部分
1买喧、新建wechat項目,然后新建app.js文件匆赃,使用git Bash 或命令行里安裝Koa和sha1加密模塊
npm install Koa sha1
2淤毛、app.js文件中的代碼
'use strict' //使用嚴格模式
var Koa = require('koa');
var sha1 = require('sha1');
var config = { //微信公眾號的基本配置信息
wechat: {
appID: 'wx9dad68746eaca383',
appsecret: '6e79e2763ce3159f1d556795812a1a12',
token: 'farm' //自己寫的一個
}
};
var app = new Koa();
app.use(function *(next) {
console.log(this.query); //測試微信服務端返回的數(shù)據(jù),啟動項目后算柳,可以在命令行中看到返回的數(shù)據(jù)
//將獲取到的token低淡、signature、nonce拼接成數(shù)組,排序蔗蹋、連接成字符串后使用sha1加密何荚,判斷加密后的字符串和微信服務器返回的數(shù)據(jù)中的signature是否相同,如果相同猪杭,yan
var token = config.wechat.token;
var signature = this.query.signature;
var nonce = this.query.nonce;
var timestamp = this.query.timestamp;
var echostr = this.query.echostr;
var str = new Array(token, timestamp, nonce);
str = str.sort().join('');
var sha = sha1(str);
console.log(signature)
console.log(token)
if (sha === signature) {
this.body = echostr + '';
}
else {
this.body = 'wrong';
}
})
app.listen(80);
console.log('listening: 80');
3餐塘、通過 node --harmony app.js 啟動項目。將項目IP地址和自己設定的token填入測試賬號的配置信息部分胁孙。注意唠倦,要使用80端口或443端口。
這樣就配置好了涮较。
總結:在這次信息配置中稠鼻,自己作為新手入門,還是折騰了一番狂票,很多東西都沒有接觸過候齿,例如購買服務器之類的,因為之前沒有弄懂ip地址這些闺属,作為通信專業(yè)學生慌盯,沒有把計算機網(wǎng)絡學好,很慚愧掂器,自己嘗試過用ngrok映射外網(wǎng)亚皂,不過這樣映射的外網(wǎng)地址是動態(tài)的,每次啟動項目后国瓮,都要重新配置URL灭必。還有就是token驗證,微信開發(fā)者文檔中邏輯寫的很清晰(下圖)乃摹,自己代碼功底不足禁漓,沒能自己實現(xiàn),仿照視頻寫的孵睬,積攢一點小經(jīng)驗播歼,希望以后繼續(xù)努力。