🎉 wechat server verification part completed

This commit is contained in:
Song
2020-09-01 15:21:10 +08:00
commit 57294ac131
5 changed files with 76 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
.idea
node_modules
package-lock.json
.env
+5
View File
@@ -0,0 +1,5 @@
# 微信消息推送
## 描述
利用测试号来给自己的微信推送消息。
https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
+26
View File
@@ -0,0 +1,26 @@
const express = require("express");
const path = require("path");
const cookieParser = require("cookie-parser");
const logger = require("morgan");
const http = require("http");
require("dotenv").config();
const indexRouter = require("./routes");
const app = express();
app.use(logger("dev"));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));
app.use("/", indexRouter);
const port = parseInt(process.env.PORT || "3000");
app.set("port", port);
const server = http.createServer(app);
server.listen(port);
module.exports = app;
+18
View File
@@ -0,0 +1,18 @@
{
"name": "wechat-message-push",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"dotenv": "^8.2.0",
"express": "~4.16.1",
"morgan": "~1.9.1"
},
"devDependencies": {
"prettier": "^2.1.1"
}
}
+23
View File
@@ -0,0 +1,23 @@
const express = require("express");
const router = express.Router();
const crypto = require("crypto");
router.get("/", (req, res, next) => {
res.send("OK");
});
router.get("/verify", (req, res, next) => {
// 验证消息来自微信服务器:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
const { signature, timestamp, nonce, echostr } = req.body;
const token = process.env.TOKEN;
let tmp_array = [token, timestamp, nonce].sort();
let tmp_string = tmp_array.join("");
tmp_string = crypto.createHash("sha1").update(tmp_string).digest("hex");
if (tmp_string === signature) {
res.send(echostr);
} else {
res.send("verification failed");
}
});
module.exports = router;