mirror of
https://github.com/touwaeriol/sub2apipay.git
synced 2026-09-21 13:21:31 +08:00
- /api/user 添加 token 认证,防止用户枚举 - Admin token 支持 Authorization header - /api/orders/my 区分认证失败和服务端错误 - Admin orders userId/date 参数校验 - Decimal 字段统一 Number() 转换 - 抽取 handleApiError/extractHeaders 工具函数 - Webhook 路由改用 Registry 获取 Provider - PaymentRegistry lazy init 自动初始化 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
21 lines
786 B
TypeScript
21 lines
786 B
TypeScript
import { NextRequest, NextResponse } from 'next/server';
|
|
import { OrderError } from '@/lib/order/service';
|
|
|
|
/** 统一处理 OrderError 和未知错误 */
|
|
export function handleApiError(error: unknown, fallbackMessage: string): NextResponse {
|
|
if (error instanceof OrderError) {
|
|
return NextResponse.json({ error: error.message, code: error.code }, { status: error.statusCode });
|
|
}
|
|
console.error(`${fallbackMessage}:`, error);
|
|
return NextResponse.json({ error: fallbackMessage }, { status: 500 });
|
|
}
|
|
|
|
/** 从 NextRequest 提取 headers 为普通对象 */
|
|
export function extractHeaders(request: NextRequest): Record<string, string> {
|
|
const headers: Record<string, string> = {};
|
|
request.headers.forEach((value, key) => {
|
|
headers[key] = value;
|
|
});
|
|
return headers;
|
|
}
|