🎉 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