75 lines
2.3 KiB
TypeScript
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
|