以前看過一些node作微信公衆號認證的教程,本身也想用node把微信和小程序的開發內容學習一下,包括登陸機制等,之後就不用總依賴後端的小夥伴幫忙了,指望能夠本身完成全棧的開發。node
結果卻剛剛完成第一步的域名認證,記錄了一下過程,共同窗習。linux
這一步拖了好長時間,在找便宜的雲服務器,如今用的是滴滴雲的雲服務器,第一個月9塊錢,後三個月續費一個月20塊錢,趁着打折,抓緊學習一下 哈哈。git
以前繞了一堆彎路,由於linux不太熟悉,用下載再配置環境變量的方式老是出錯,學習要緊,就沒糾結了,直接換了方式。express
$ sudo yum -y install nodejs
複製代碼
3.1 安裝express腳手架npm
$ npm install express-generator -g
複製代碼
3.2 建立目錄和應用並安裝依賴json
//建立源碼目錄並進入
$ mkdir dir nodeApp
$ cd /nodeApp
//建立應用
$ express weiChart
$ cd /weiChart
// 安裝須要依賴包
$ npm install
複製代碼
到這個就能夠直接啓動應用了,可是考慮邊修改邊預覽調試,會無限重啓應用,就配置了nodemon插件,修改完代碼自動重啓應用。小程序
4.1 安裝vim
// 全局安裝nodemon插件
$ npm install -g nodemon
// 進入應用下的bin目錄
$ cd /bin
複製代碼
4.2 建立配置文件後端
可使用vim建立也能夠直接本地建立好拖入bin目錄bash
<!--nodemon配置文件 nodemon.json -->
{
"restartable": "rs",
"ignore": [
".git",
".svn",
"node_modules/**/node_modules"
],
"verbose": true,
"execMap": {
"js": "node --harmony"
},
"watch": [],
"env": {
"NODE_ENV": "development"
},
"ext": "js json"
}
複製代碼
使用vim建立
$ vim nodemon.json
// 粘貼文件
按esc 輸入':wq' 保存退出便可
複製代碼
4.3 使用nodemon啓動應用
// 進入項目根目錄
$ cd ../
$ nodemon npm start
複製代碼
在這以前你應該註冊完成公衆號,登陸成功點擊左側菜單 開發-> 基本配置。
點擊修改配置進入配置界面,輸入你的服務器地址和自定義的token,而後隨機生成一個加密密匙,加密方式默認就好。
注:我使用的是/weiChart路徑,不是項目根目錄,因此在express的路由裏須要配置上。
6.1 安裝依賴
$ npm install jssha --save-dev
複製代碼
進入項目根目錄下的routes文件,打開index.js進行開發。
6.2 引入依賴
var jsSHA = require('jssha');
複製代碼
6.3 建立微信路由
router.get('/weiChart', function(req, res, next) {
//自定移動token,要與微信公衆號裏設置的一致
var token="6d05aedab138be6bbbf40b41d65a45ec";
//1.獲取微信服務器Get請求的參數 signature、timestamp、nonce、echostr
var signature = req.query.signature,//微信加密簽名
timestamp = req.query.timestamp,//時間戳
nonce = req.query.nonce,//隨機數
echostr = req.query.echostr;//隨機字符串
//2.將token、timestamp、nonce三個參數進行字典序排序
var array = [token,timestamp,nonce];
array.sort();
//3.將三個參數字符串拼接成一個字符串進行sha1加密
var tempStr = array.join('');
var shaObj = new jsSHA('SHA-1', 'TEXT');
shaObj.update(tempStr);
var scyptoString=shaObj.getHash('HEX');
//4.開發者得到加密後的字符串可與signature對比,標識該請求來源於微信
if(signature === scyptoString){
console.log('驗證成功')
res.send(echostr);
}else{
console.log('驗證失敗')
res.send('驗證失敗');
}
});
複製代碼
6.4 提交綁定
啓動應用,而後點擊微信公衆號配置頁面的提交按鈕,成功或失敗都有提示,祝你成功。
以前是按照用node.js進行微信公衆平臺的開發的步驟來作,在註釋裏第2、三個步驟踩過兩個坑
文章截圖
順序與官網不一致
jsSHA用法不正確
前期看概念資料、教程
實現其實挺簡單的,在作之前看過好多微信認證的資料,網上能夠找到一堆,而後實踐時就有思路了。
實踐看文檔找方法
哪一個方法報錯就翻哪一個方法的文檔,不要一報錯就換另外一個教程走。