🎉 wechat server verification part completed
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
.idea
|
||||
node_modules
|
||||
package-lock.json
|
||||
.env
|
||||
@@ -0,0 +1,5 @@
|
||||
# 微信消息推送
|
||||
## 描述
|
||||
利用测试号来给自己的微信推送消息。
|
||||
|
||||
https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
|
||||
@@ -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;
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user