本人也是在學習過程中,所以文章只作為學習筆記,如果能幫到你,那就更好啦~當然也難免會有錯誤,請不吝指出~
一、準備工作
1、本人學習教程:慕課網Scott老師的《Node.js七天搞定微信公眾號》 ,但是有點小貴,經濟條件允許的話可以支持一下。
2、文檔:微信開發官方文檔,必備。https://mp.weixin.qq.com/wiki
3、微信開發測試號:測試公眾號,必備。https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
4、云服務器:本人使用的是阿里云ECS,我是不建議使用ngrok這類的工具,太麻煩了,有個云服務器后一勞永逸!想弄的話可以看一下我以前的一篇文章http://www.cnblogs.com/zczhangcui/p/6789094.html
5、域名:有了服務器和外網IP后,沒有域名好像也可以進行,我是買了個域名并進行了備案,備案耗時較長,我是在云網買的,建議買之前看看域名在國內能不能備案。
6、開發工具:mac + chrome + sublime + 手機,當然都不是必須的。sublime使用sftp插件向云服務同步代碼,很方便。
二、框架選擇
這里使用了Node.js的Koa框架的1.2版本,Node版本為7.6.
至于為什么Koa2都有了還要用Koa1.2,當然是跟著教程來的,為了減小入門成本,所以選擇了與教程一致的版本。_(:з」∠)_
三、目錄結構
這里目錄的生成使用了koa-generator快速生成。https://github.com/17koa/koa-generator
四、接入微信服務器
首先進入測試號頁面,如下圖
其中接口配置信息需要填寫你的服務器URL,Token是自己填寫的驗證信息,內容隨意。在提交之前,需要在服務器端進行配置。說白了,這個過程就是向微信證明“你(填寫的服務器地址)是你”。
五、配置服務器,完成接入
在此之前,必須閱讀微信開發文檔,了解接入過程!
?
接下來直接上代碼:
首先使用koa-generator或者生成項目目錄,之后使用npm install 安裝依賴。
在routes下的index中進行如下修改:
var router = require('koa-router')();
var index_middleware = require('../wechat/index_middleware');
var config = require('../wechat/config');router.get('/', index_middleware.get(config.wechat));module.exports = router;
接下來實現index_middleware和config。
wechat/config.js:
module.exports = {wechat: {appID: 'xxxxxx',appSecret: 'xxxxxxxxxxxxxxx',token: 'xxxxxxx'}
};
這里面的信息根據你自己的測試號進行填寫。
wechat/index_middleware.js:
var sha1 = require('sha1');exports.get = function(opts) {return function *(next) {var token = opts.token;var signature = this.query.signature;var nonce = this.query.nonce;var timestamp = this.query.timestamp;var echostr = this.query.echostr;var str = [token, timestamp, nonce].sort().join('');var sha = sha1(str);if (sha === signature) {this.body = echostr + '';}};
};
完成接入邏輯后,需要npm install sha1 --save 安裝sha1加密模塊。
建議安裝npm install supervisor -g,之后supervisor bin/www啟動服務器并監聽變化自動重啟服務器,這樣可以不用每次改動后手動重啟服務器。
完成以上步驟后,回到步驟四,對填寫的URL進行驗證,這時,無意外的話,會出現驗證成功,至此該服務器可以作為微信開發服務器了。