nodejs微信公衆號開發——1.接入微信公衆號

接入微信公衆號是開發的第一步,萬事開頭難,走好第一步,後面的路就更寬廣。(項目github地: https://github.com/Panfen/wem... )

1.公衆平臺測試賬號的使用

登陸微信公衆平臺,因爲不少開發人員並無認證的的微信公衆號,因此比較折中的方式是使用公衆平臺測試賬號來測試功能,其優點是可以測試微信公衆號的絕大部分功能,不受認證門檻的限制。
圖片描述
進入測試帳號管理界面:
咱們須要配置接口的信息,URLToken是微信公衆平臺和本地開發服務創建鏈接的橋樑。
圖片描述
微信配置好後,掃面下方的測試號二維碼,便可以在手機上測試開發的功能。node

圖片描述

2.驗證公衆號

圖片描述
一圖勝千言。接入公衆號時,微信公衆平臺須要驗證開發者的身份,向開發者填寫的URL發送一個GET請求,請求中包含4個參數:signatureechostrtimestampnonce,收到該請求,咱們須要作的事情:git

  1. tokentimestampnonce三個參數進行字典排序;
  2. 將三個字符串拼接成一個字符串進行sha1加密;
  3. 將加密後的字符串與signature進行比較,若是相同,表示這個請求來自微信,咱們直接原樣返回echostr的內容,接入驗證成功。

3.搭建開發服務器

搭建開發服務器的方式有不少,如購買雲服務器、使用花生殼、ngrok、localtunnel等。這裏爲了簡單起見採用localtunnel。先全局方式安裝localtunnel,github

npm install -g lt

啓動ltnpm

lt --port 8080   //對外暴露8080端口,可端口號可本身隨便設定

4.編寫代碼

好了,如今開始編寫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);

5.配置測試公衆號信息

代碼編寫完畢,如今開始正式配置啦。在終端中輸入lt --port 8080啓動localtunnel,獲得對外可訪問的URL:
圖片描述
這個URL填寫到測試帳號管理界面中的URLToken字段可隨意填寫,方便起見,就用wemovie吧!
填寫完畢,點擊提交,發現驗證成功,恭喜!
圖片描述
注:微信

  • 因爲localtunnel不是很穩定,因此可能一開始點擊提交提示的是黃條的配置失敗,須要多點一兩次按鈕;
  • 每次重啓程序,都須要重啓localtunnel獲取新的URL,而後從新配置。(這就是選擇簡單付出的代價T_T)

到此爲止,已經打開了通向微信公衆號開發的大門,接下來,咱們將繼續探索nodejs微信公衆號開發之旅。app

相關文章
相關標籤/搜索