2025-12-24 14:41:11 +08:00

71 lines
1.8 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
import { getServerSession } from 'next-auth/next'
import { authOptions } from '@/lib/authOptions'
import { db } from '@/lib/db'
export const dynamic = 'force-dynamic'
export async function GET(request: NextRequest) {
try {
// 验证登录状态
const session = await getServerSession(authOptions)
if (!session || !session.user?.id) {
return NextResponse.json(
{ message: '请先登录' },
{ status: 401 }
)
}
const searchParams = request.nextUrl.searchParams
const orderNo = searchParams.get('order_no')
if (!orderNo) {
return NextResponse.json(
{ message: '订单号不能为空' },
{ status: 400 }
)
}
// 查找订单
const order = await db.findOrderByOrderNo(orderNo)
if (!order) {
return NextResponse.json(
{ message: '订单不存在' },
{ status: 404 }
)
}
// 验证订单是否属于当前用户
const userId = parseInt(session.user.id)
if (order.user_id !== userId) {
return NextResponse.json(
{ message: '无权访问此订单' },
{ status: 403 }
)
}
return NextResponse.json({
success: true,
order: {
id: order.id,
order_no: order.order_no,
product_type: order.product_type,
product_name: order.product_name,
amount: order.amount,
status: order.status,
payment_method: order.payment_method,
trade_no: order.trade_no,
created_at: order.created_at,
paid_at: order.paid_at,
},
})
} catch (error) {
console.error('查询订单状态错误:', error)
return NextResponse.json(
{ message: '查询失败,请稍后重试' },
{ status: 500 }
)
}
}