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"));