歡迎各位指正,轉載請把連接帶上——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驗證失敗,則是代碼問題,查看代碼哪裏有錯誤!修改錯誤後從新提交!
今後,咱們就能夠真正的作微信開發了,查看文檔,完成本身想完成的任務去吧!
@轉載請註明出處!