接入微信公衆號是開發的第一步,萬事開頭難,走好第一步,後面的路就更寬廣。(項目github地: https://github.com/Panfen/wem... )
登陸微信公衆平臺,因爲不少開發人員並無認證的的微信公衆號,因此比較折中的方式是使用公衆平臺測試賬號
來測試功能,其優點是可以測試微信公衆號的絕大部分功能,不受認證門檻的限制。
進入測試帳號管理界面:
咱們須要配置接口的信息,URL
和Token
是微信公衆平臺和本地開發服務創建鏈接的橋樑。
微信配置好後,掃面下方的測試號二維碼,便可以在手機上測試開發的功能。node
一圖勝千言。接入公衆號時,微信公衆平臺須要驗證開發者的身份,向開發者填寫的URL
發送一個GET請求,請求中包含4個參數:signature
、echostr
、timestamp
和nonce
,收到該請求,咱們須要作的事情:git
token
、timestamp
和nonce
三個參數進行字典排序;signature
進行比較,若是相同,表示這個請求來自微信,咱們直接原樣返回echostr的內容,接入驗證成功。搭建開發服務器的方式有不少,如購買雲服務器、使用花生殼、ngrok、localtunnel等。這裏爲了簡單起見採用localtunnel。先全局方式安裝localtunnel
,github
npm install -g lt
啓動ltnpm
lt --port 8080 //對外暴露8080端口,可端口號可本身隨便設定
好了,如今開始編寫app.js的代碼:服務器
'use strict' var Koa = require('koa'); var sha1 = require('sha1'); var config = { wechat:{ appID:'...', //填寫你本身的appID appSecret:'...', //填寫你本身的appSecret token:'...' //填寫你本身的token } }; var app = new Koa(); app.use(function *(next){ 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 = [token,timestamp,nonce].sort().join(''); //按字典排序,拼接字符串 var sha = sha1(str); //加密 this.body = (sha === signature)? echostr + '' : 'failed'; //比較並返回結果 }); app.listen(8080);
代碼編寫完畢,如今開始正式配置啦。在終端中輸入lt --port 8080
啓動localtunnel,獲得對外可訪問的URL
:
這個URL
填寫到測試帳號管理
界面中的URL
,Token
字段可隨意填寫,方便起見,就用wemovie
吧!
填寫完畢,點擊提交,發現驗證成功,恭喜!注:
微信
提交
提示的是黃條的配置失敗
,須要多點一兩次按鈕;URL
,而後從新配置。(這就是選擇簡單付出的代價T_T)到此爲止,已經打開了通向微信公衆號開發的大門,接下來,咱們將繼續探索nodejs微信公衆號開發之旅。app