feat: 微信统一消息推送入口——echostr握手+xpay事件接收(虚拟支付回调通道)
This commit is contained in:
@@ -10,6 +10,7 @@ const rateLimit = require('express-rate-limit')
|
||||
const connectDB = require('./config/database')
|
||||
const initRoutes = require('./routes')
|
||||
const seoRoutes = require('./routes/seo')
|
||||
const registerWxMsgRoutes = require('./routes/wxmsg')
|
||||
const logger = require('./utils/logger')
|
||||
|
||||
// 创建 Express 应用
|
||||
@@ -33,6 +34,17 @@ app.use(cors()) // 跨域支持
|
||||
app.use(compression()) // Gzip 压缩
|
||||
app.use(express.json({ limit: '1mb' })) // JSON 解析(普通接口无需 10mb 大包)
|
||||
app.use(express.urlencoded({ extended: true, limit: '1mb' })) // URL 编码解析
|
||||
// 微信消息推送为 text/xml 体,透传为字符串供 /api/wx/msg 解析
|
||||
app.use((req, res, next) => {
|
||||
if (req.method === 'POST' && (req.headers['content-type'] || '').includes('xml')) {
|
||||
let data = ''
|
||||
req.setEncoding('utf8')
|
||||
req.on('data', (c) => (data += c))
|
||||
req.on('end', () => { req.body = data; next() })
|
||||
return
|
||||
}
|
||||
next()
|
||||
})
|
||||
|
||||
// 日志中间件
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
@@ -62,6 +74,7 @@ app.get('/health', (req, res) => {
|
||||
})
|
||||
|
||||
// API 路由
|
||||
registerWxMsgRoutes(app)
|
||||
initRoutes(app)
|
||||
|
||||
// 404 处理
|
||||
|
||||
Reference in New Issue
Block a user