本人也是在學習過程中,所以文章只作為學習筆記,如果能幫到你,那就更好啦~當然也難免會有錯誤,請不吝指出~
一、准備工作
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進行驗證,這時,無意外的話,會出現驗證成功,至此該服務器可以作為微信開發服務器了。
