十一之后的空窗期,想靜下來(lái)寫點(diǎn)東西略就,不知道能支撐到最后嘛~~~~~~~~~~~~~大家一起共勉
參照:
http://www.jb51.net/article/110747.htm
https://www.cnblogs.com/zcy123-com/p/6922724.html
https://www.cnblogs.com/xuange306/p/4971702.html
準(zhǔn)備工作:
- 申請(qǐng)微信公眾號(hào)
- 安裝盒使、搭建node環(huán)境
- 安裝node.js(https://nodejs.org/en/download/)
- 打開(kāi)cmd:
node -v //查看是否安裝成功
npm install -g express //安裝express模塊(用于創(chuàng)建服務(wù)器圣勒,默認(rèn)端口號(hào)3000)
npm install -g express-generator@4 //由于Express自4. 版本中將命令工具分離出來(lái)
接入微信公眾平臺(tái):
1.創(chuàng)建Node.js 項(xiàng)目:
cmd:進(jìn)入項(xiàng)目存放位置捅儒,執(zhí)行express wechat (命名隨意)
cmd:進(jìn)入到根目錄下wechat查刻,執(zhí)行npm i
接下來(lái)就是驗(yàn)收成果:
啟動(dòng)項(xiàng)目 cmd:npm run start
2.部署項(xiàng)目:
這里用了Sunny-Ngrok內(nèi)網(wǎng)穿透,因?yàn)樗峁┟赓M(fèi)內(nèi)網(wǎng)穿透服務(wù)秧饮,免費(fèi)服務(wù)器支持綁定自定義域名:
在官網(wǎng)注冊(cè):https://www.ngrok.cc
官網(wǎng)左側(cè)開(kāi)通一個(gè)免費(fèi)隧道:開(kāi)通教程
3.公眾號(hào)的接入配置:
登錄微信公眾平臺(tái)官網(wǎng)后映挂,在公眾平臺(tái)官網(wǎng)的開(kāi)發(fā)-基本設(shè)置頁(yè)面,勾選協(xié)議成為開(kāi)發(fā)者盗尸,點(diǎn)擊“修改配置”按鈕柑船。
URL:剛剛映射好的外網(wǎng)地址
cmd:在根目錄下執(zhí)行 npm i crypto //安裝crypto模塊(加密解密)
在根目錄下新建config.json,用來(lái)設(shè)置token:
{
"token":"****" // 填入你的token值
}
修改routes文件夾下的index.js文件泼各,如下:
var express = require('express'), // 引入express模塊
crypto = require('crypto'), // 引入加密模塊
config = require('../config'), // 引入配置文件
router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
var signature = req.query.signature, // 微信加密簽名鞍时,signature結(jié)合了開(kāi)發(fā)者填寫的token參數(shù)和請(qǐng)求中的timestamp參數(shù)、nonce參數(shù)扣蜻。
timestamp = req.query.timestamp, // 時(shí)間戳
nonce = req.query.nonce, // 隨機(jī)數(shù)
echostr = req.query.echostr; // 隨機(jī)字符串
// 1)將token逆巍、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序
var array = [config.token, timestamp, nonce];
array.sort();
// 2)將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密
var string = array.join(''),
hashCode = crypto.createHash('sha1'), // 創(chuàng)建加密類型
resultCode = hashCode.update(string, 'utf8').digest('hex'); // 對(duì)字符串進(jìn)行加密
//3)開(kāi)發(fā)者獲得加密后的字符串可與signature對(duì)比莽使,標(biāo)識(shí)該請(qǐng)求來(lái)源于微信
if (resultCode === signature) {
res.send(echostr);
} else {
res.send('error!!!');
}
});
module.exports = router;
回到微信公眾平臺(tái):
提交成功H窦!吮旅!
接入微信公眾平臺(tái)成功O尽N犊取庇勃!