記得15年那個剛剛進入工作的時候,公司有個微信公眾號的項目,那個時候微信官方沒有什么調試工具,也沒有什么比較好的本地調試工具。當時有個功能需要調用微信JSSDK里面的掃一掃的功能。由於本地不能調試。開發起來很煩。每次都需要把代碼上傳到測試服務器,然后在測試。這樣耗費了不少時間。前幾天之前的同事再次開發公眾號的時候。出了一些問題。然后在討論的時候。得知了一個微信公眾號本地開發的神器"localtunne"。可以自己本地直接調試開發微信公號。調用JSSDK。使用非常簡單。
什么是localtunne
Localtunnel 是一個可以讓內網服務器暴露到公網上的開源項目。項目地址。他可以讓你本地項目只需要一句命令直接讓外網訪問。
怎么安裝localtunne
localtunnel是基於Node.js。所有你本地需要安裝nodeJS。如果本地已經安裝直接運行
#安裝localtunnel
npm install -g localtunnel
#查看當前版本。現在最新是1.8.3
lt --version
沒有安裝nodejs的可以參考nodejs官方下載安裝。官網
接入微信公眾號
已經安裝好了localtunne,怎么關聯微信公眾號呢?首先打開微信公眾平台接口測試帳號申請 。直接使用手機微信掃碼登錄。
然后看到需要填寫接口配置信息和JS接口安全域名。

這個時候就需要用到剛剛我們安裝的localtunnel。我們直接在控制台輸入
#這里3000指的是我本地程序的監聽的端口。根據具體項目修改。運行成功會返回一個域名。這個域名等會會用到。
robin:~ robin$ lt --port 3000
your url is: https://wvfgfpvsdm.localtunnel.me
這里我們需要一段代碼來做認證使用。 代碼如下:
const Koa = require('koa');
const app = new Koa();
let config = require('./config/config');
let sha1 = require('sha1');
app.use(async ctx => {
//僅僅用於測試
console.log(ctx.query)
let token = config.token;
let {signature, timestamp, nonce, echostr} = ctx.query;
let arr = [token, timestamp, nonce];
let str = sha1(arr.sort().join(''));
if (str === signature) {
ctx.body = echostr+ '';
}else {
ctx.body = '出錯了';
}
});
app.listen(3000);
首先運行上面那段代碼。然后我們把拿到域名了填寫到網頁上面。token可以隨便填寫要記住。然后點擊提交按鈕。這個時候會直接提示配置成功。同時本地程序也收到了微信的請求。

這個時候已經完成了對公眾號的接入。簡單吧。如果需要用到JS接口還需要配置JS接口安全域名。 這個一個坑就是復制自己域名的時候千萬不要帶任何的協議。只需要復制https://或者http://后面部門就可以了。然后點擊保存之后。就可以很愉快的使用js相關的API啦。當然localtunnel也有很多別的一些功能。有興趣的可以研究下。
