Files
order_site/apps/backend/src/routes/open-91.ts
T
2026-05-21 17:31:48 +08:00

75 lines
2.3 KiB
TypeScript

import { Router } from 'express'
import { createOpen91Order } from '../services/open-91/order-create-service.js'
import { queryOpen91Order } from '../services/open-91/order-query-service.js'
import { buildOpen91ErrorResponse } from '../services/open-91/shared.js'
import { createRequestId, logWebhook } from '../utils/logger.js'
const router = Router()
router.post('/orders/create', async (req, res) => {
const requestId = createRequestId('91')
const startedAt = Date.now()
logWebhook('[open-91/create]', '收到 91卡券异步下单请求', {
requestId,
method: req.method,
originalUrl: req.originalUrl,
ip: req.ip,
body: req.body,
})
try {
const result = await createOpen91Order(req.body, { requestId })
logWebhook('[open-91/create]', '91卡券异步下单处理完成', {
requestId,
durationMs: Date.now() - startedAt,
result,
})
res.status(200).json(result)
} catch (error) {
const message = error instanceof Error ? error.message : '系统错误'
const code = Number(error?.statusCode || 500) >= 500 ? 500 : 400
logWebhook('[open-91/create]', '91卡券异步下单处理失败', {
requestId,
durationMs: Date.now() - startedAt,
error,
}, { level: 'error' })
res.status(200).json(buildOpen91ErrorResponse(message, code))
}
})
router.post('/orders/query', async (req, res) => {
const requestId = createRequestId('91')
const startedAt = Date.now()
logWebhook('[open-91/query]', '收到 91卡券订单查询请求', {
requestId,
method: req.method,
originalUrl: req.originalUrl,
ip: req.ip,
body: req.body,
})
try {
const result = await queryOpen91Order(req.body, { requestId })
logWebhook('[open-91/query]', '91卡券订单查询处理完成', {
requestId,
durationMs: Date.now() - startedAt,
result,
})
res.status(200).json(result)
} catch (error) {
const message = error instanceof Error ? error.message : '系统错误'
const code = Number(error?.statusCode || 500) >= 500 ? 500 : 400
logWebhook('[open-91/query]', '91卡券订单查询处理失败', {
requestId,
durationMs: Date.now() - startedAt,
error,
}, { level: 'error' })
res.status(200).json(buildOpen91ErrorResponse(message, code))
}
})
export default router