12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- const express = require("express");
- const {
- getJsapiTicket,
- createSignature,
- verifyWechatToken,
- } = require("./wechat");
- const app = express();
- // 公众号后台配置的 Token(需与后台一致)
- const WECHAT_TOKEN = 'Kyunghak132'; // 替换为你的实际 Token
- // 允许跨域(如需)
- app.use((req, res, next) => {
- res.header("Access-Control-Allow-Origin", "*");
- res.header("Access-Control-Allow-Headers", "Content-Type");
- next();
- });
- // 微信服务器验证接口(需处理 GET 请求)
- app.get('/api/wechat', (req, res) => {
- console.log("微信验证请求:", req.query); // 添加这行
- const { signature, timestamp, nonce, echostr } = req.query;
- if (verifyWechatToken(WECHAT_TOKEN, signature, timestamp, nonce)) {
- res.send(echostr); // 验证成功,返回 echostr
- } else {
- res.status(403).send("Token 验证失败");
- }
- });
- // GET /api/wechat-signature?url=https://xxx.com/page
- app.get("/api/wechat-signature", async (req, res) => {
- try {
- const url = decodeURIComponent(req.query.url);
- if (!url) return res.status(400).json({ error: "缺少 url 参数" });
- const ticket = await getJsapiTicket();
- const sign = createSignature(ticket, url.split("#")[0]);
- res.json(sign);
- } catch (e) {
- res.status(500).json({ error: e.message });
- }
- });
- app.listen(3000, () => console.log("服务已启动 http://localhost:3000"));
|