本人也是在學習過程當中,因此文章只做爲學習筆記,若是能幫到你,那就更好啦~固然也不免會有錯誤,請不吝指出~html
一、本人學習教程:慕課網Scott老師的《Node.js七天搞定微信公衆號》 ,可是有點小貴,經濟條件容許的話能夠支持一下。git
二、文檔:微信開發官方文檔,必備。https://mp.weixin.qq.com/wikigithub
三、微信開發測試號:測試公衆號,必備。https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/loginchrome
四、雲服務器:本人使用的是阿里雲ECS,我是不建議使用ngrok這類的工具,太麻煩了,有個雲服務器後一勞永逸!想弄的話能夠看一下我之前的一篇文章http://www.cnblogs.com/zczhangcui/p/6789094.htmlnpm
五、域名:有了服務器和外網IP後,沒有域名好像也能夠進行,我是買了個域名並進行了備案,備案耗時較長,我是在雲網買的,建議買以前看看域名在國內能不能備案。服務器
六、開發工具:mac + chrome + sublime + 手機,固然都不是必須的。sublime使用sftp插件向雲服務同步代碼,很方便。微信
這裏使用了Node.js的Koa框架的1.2版本,Node版本爲7.6.微信開發
至於爲何Koa2都有了還要用Koa1.2,固然是跟着教程來的,爲了減少入門成本,因此選擇了與教程一致的版本。_(:з」∠)_app
這裏目錄的生成使用了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進行驗證,這時,無心外的話,會出現驗證成功,至此該服務器能夠做爲微信開發服務器了。