解析nodejs微信公眾號開發之-1.接取微信公眾號

怪我咯
發布: 2017-04-10 11:33:09
原創
2365 人瀏覽過

本篇文章主要介紹了詳解nodejs微信公眾號開發-1.接入微信公眾號,非常具有實用價值,需要的朋友可以參考下

接入微信公眾號是開發的第一步,萬事起頭難,走好第一步,後面的路就更寬廣。

1.公眾平台測試帳號的使用

#登入微信公眾平台,由於許多開發人員並沒有認證的微信公眾號,所以比較折中的方式是使用公眾平台測試帳號來測試功能,其優點是能夠測試微信公眾號的絕大部分功能,不受認證門檻的限制。

進入測試帳號管理介面:

我們需要設定介面的信息,URLToken是微信公眾平台和本地開發服務建立連結的橋樑。

微信配置好後,掃面下方的測試號二維碼,也就是可以在手機上測試開發的功能。

2.驗證公眾號

#一圖勝千言。接取公眾號時,微信公眾平台需要驗證開發者的身份,向開發者填寫的URL發送一個GET請求,請求中包含4個參數:signature<a href="http://www.php.cn/wiki/1343.html" target="_blank">echo</a>str<a href="http://www.php.cn/wiki/1268.html" target="_blank">time</a>stampnonce,收到該請求,我們需要做的事情:

  1. tokentimestampnonce三個參數進行字典排序;

  2. 將三個字串拼接成一個字串進行sha1加密;

  3. #將加密後的字串與signature進行比較,如果相同,表示這個請求來自微信,我們直接原樣回傳echostr的內容,接入驗證成功。

3.建立開發伺服器

#建置開發伺服器的方式有很多,如購買雲端伺服器、使用花生殼、ngrok 、localtunnel等。這裡為了簡單起見採用localtunnel。先全域方式安裝localtunnel,

npm install -g lt
登入後複製

啟動lt

lt --port 8080  //对外暴露8080端口,可端口号可自己随便设定
登入後複製

4.寫程式碼

好了,現在開始寫app.js的程式碼:

&#39;use strict&#39;

var Koa = require(&#39;koa&#39;);
var sha1 = require(&#39;sha1&#39;);

var config = {
  wechat:{
    appID:&#39;...&#39;, //填写你自己的appID
    appSecret:&#39;...&#39;, //填写你自己的appSecret
    token:&#39;...&#39; //填写你自己的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(&#39;&#39;); //按字典排序,拼接字符串
  var sha = sha1(str); //加密
  this.body = (sha === signature)? echostr + &#39;&#39; : &#39;failed&#39;; //比较并返回结果
});
app.listen(8080);
登入後複製

5.設定測試公眾號資訊

程式碼寫完畢,現在開始正式設定囉。在終端機中輸入lt --port 8080啟動localtunnel,得到對外可存取的URL:

##這個

URL填寫到測試帳號管理介面中的URLToken欄位可隨意填寫,方便起見,就用wemovie#吧!

填寫完畢,點擊提交,發現驗證成功,恭喜!

註:

  1. #由於localtunnel不是很穩定,所以可能一開始就點擊

    提交提示的是黃條的配置失敗,需要多點一兩次按鈕;

  2. 每次重啟程序,都需要重新啟動localtunnel取得新的

    URL,然後重新配置。 (這就是選擇簡單付出的代價T_T)

到此為止,已經打開了通往微信公眾號開發的大門,接下來,我們將繼續探索nodejs微信公眾號開發之旅

以上是解析nodejs微信公眾號開發之-1.接取微信公眾號的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!