微信後臺開發第一步:nodeJS+express接入微信後臺詳細教程

博文由  水車  編寫

歡迎各位指正,轉載請把連接帶上——http://www.cnblogs.com/xuange306/p/4971702.htmljavascript

前期準備工做html

  1:若是你沒有服務器,那你須要一個內網映射工具:我用的是《花生殼》(PS:這不是廣告),花生殼在實名認證是須要8RMB的認證費,以後就能夠永久使用了,而且支持80端口映射,java

    注:花生殼在免費申請時要申請內網,不要申請公網。
node

  2:nodeJS 最新版本,安裝教程自行上網搜索web

  3:一個註冊號的微信公衆號,自行申請,這裏不作說明,網上教程已經比較成熟;express

  

花生殼使用教程npm

  下載地址: http://hsk.oray.com/download/瀏覽器

  安裝:沒有須要注意的服務器

  註冊帳號:微信

  

  進去點擊我的註冊,若是你是企業,那就點擊企業註冊;

  註冊成功後登錄客戶端

  登錄後具體怎麼作我忘了,(省略實名認證過程)總之會讓你支付8RMB,付款後就可使用了

  這時你應該已經生成了本身的映射域名了;

  

  雙擊域名

    

  注意的地方如上圖,點擊肯定;添加成功了,再補充一點:上圖中有個80端口,那是你本地服務器的端口,和你本身的端口保持一致就好了,好比你設置的是3000端口,你就改成3000;

nodeJS配置及使用

  1:確認本身的nodeJS安裝成功,在cmd中輸入node -v 

    能夠看到本身node的安裝版本

    

  2:安裝express4.x

    這裏須要說明的是express4.x在使用上和express3.x略有不一樣;

    1:安裝全局的express包

    

    在cmd任意位置執行如下代碼

npm install -g express-generator

    2:cmd進入到你須要建立項目的目錄下;我以個人D:/test 文件夾爲例

    建立express項目,porjectName是你的項目文件夾名字,我這裏以weixin命名

express porjectName

  

    

    這裏咱們在文件夾裏能夠看到已經建立好了一個文件夾,名字就是weixin

    

    這時再執行

cd weixin && npm install

    

    安裝成功7個npm包後,咱們就開始測試下咱們的服務器可否正常啓動!這裏須要注意的是,express4.x建立的服務器默認端口爲3000;若是須要改端口,bin/www文件裏改

    

    我這裏用的是webstorm10.0.3開發。

    啓動服務器有兩種方法,若是你也用的是webstorm。

      方法一:在cmd裏輸入

      

npm start

      方法二:在webstorm裏的www文件裏的任意位置單擊右鍵,選擇run ‘fileName’;

      

   測試服務器是否正常啓動,在瀏覽器裏輸入localhost:3000

    

    到這裏,咱們的本地服務器就算是搭建完成了。

3:測試花生殼是否映射成功

  啓動花生殼映射:這裏注意,花生殼裏的本地端口要和node服務器的端口一致!

  

  在瀏覽器裏打開上圖中「外網訪問地址」!咱們看到和在localhost:3000下訪問的頁面徹底同樣,這樣就映射成功

  

 

4:公衆號的接入配置:(在這裏,你應該閱讀一下微信開發者文檔裏的接入指南;地址:http://mp.weixin.qq.com/wiki/16/1e87586a83e0e121cc3e808014375b74.html

  1:打開公衆號平臺:

       點擊「接口配置」

     URL:就是咱們映射好的外網地址;

     token:就是咱們和微信後臺約定好的令牌;

     祕鑰:隨機生成;

     加密方式:能夠選擇明文模式,也能夠選擇兼容模式;

      注意:此時咱們還不能提交,由於咱們尚未驗證代碼的編寫;這是驗證要求;

      

  首先:咱們這裏用到了另外一個npm包;因此咱們先須要安裝這個npm包,打開以前的cmd,進去個人微信目錄裏輸入:

    npm install crypto

    

    打開weixin/routes/index.js;

      

    將裏面的代碼改成:

    切記,代碼裏的token要改成你本身的token

var express = require('express');
var crypto = require('crypto');
var router = express.Router();
 
var token = "你本身規定的token"; //此處須要你本身修改!
 
/* GET home page. */
router.get('/', function(req, res, next) {
 
    var signature = req.query.signature;
    var timestamp = req.query.timestamp;
    var nonce = req.query.nonce;
    var echostr = req.query.echostr;
 
    /*  加密/校驗流程以下: */
    //1. 將token、timestamp、nonce三個參數進行字典序排序
    var array = new Array(token,timestamp,nonce);
    array.sort();
    var str = array.toString().replace(/,/g,"");
 
    //2. 將三個參數字符串拼接成一個字符串進行sha1加密
    var sha1Code = crypto.createHash("sha1");
    var code = sha1Code.update(str,'utf-8').digest("hex");
 
    //3. 開發者得到加密後的字符串可與signature對比,標識該請求來源於微信
    if(code===signature){
        res.send(echostr)
    }else{
        res.send("error");
    }
});
module.exports = router;

     代碼就改好了!如今開始接入:

    

  填好就能夠提交了!若是提示url超時,就從新點擊提交!

    此處可能出現的問題:

      1:若是屢次提交仍是超時,則將映射地址輸入瀏覽器裏直接打開,看能請求到不,若是看到頁面顯示一個error,則從新點擊提交,若是一直加載,則是花生殼問題,關閉從新打開花生殼!

      2:若是提示token驗證失敗,則是代碼問題,查看代碼哪裏有錯誤!修改錯誤後從新提交!

  

今後,咱們就能夠真的作微信開發了,查看文檔,完成本身想完成的任務去吧!

@轉載請註明出處!

相關文章
相關標籤/搜索