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


博文由  水車  編寫

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

前期准備工作

  1:如果你沒有服務器,那你需要一個內網映射工具:我用的是《花生殼》(PS:這不是廣告),花生殼在實名認證是需要8RMB的認證費,之后就可以永久使用了,並且支持80端口映射,

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

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

  3:一個注冊號的微信公眾號,自行申請,這里不做說明,網上教程已經比較成熟;

  

花生殼使用教程

  下載地址: 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驗證失敗,則是代碼問題,查看代碼哪里有錯誤!修改錯誤后重新提交!

  

從此,我們就可以真的做微信開發了,查看文檔,完成自己想完成的任務去吧!

@轉載請注明出處!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM