'use client' import { Suspense, useEffect, useState } from 'react' import { useSearchParams } from 'next/navigation' import { CheckCircle, XCircle, Loader2 } from 'lucide-react' import Link from 'next/link' import Image from 'next/image' export const dynamic = 'force-dynamic' function PaymentSuccessContent() { const searchParams = useSearchParams() const orderNo = searchParams.get('order_no') const [orderStatus, setOrderStatus] = useState<'loading' | 'success' | 'failed' | 'pending'>('loading') const [orderInfo, setOrderInfo] = useState(null) const [copyState, setCopyState] = useState<'idle' | 'copied' | 'error'>('idle') useEffect(() => { if (!orderNo) { setOrderStatus('failed') return } const checkOrderStatus = async () => { try { const response = await fetch(`/api/payment/status?order_no=${orderNo}`) const data = await response.json() if (data.success) { setOrderInfo(data.order) setOrderStatus( data.order.status === 'paid' ? 'success' : data.order.status === 'failed' ? 'failed' : 'pending' ) } else { setOrderStatus('failed') } } catch (error) { console.error('查询订单状态错误:', error) setOrderStatus('failed') } } checkOrderStatus() // 如果订单还在pending状态,每3秒轮询一次(最多轮询10次) let pollCount = 0 const pollInterval = setInterval(() => { if (pollCount >= 10) { clearInterval(pollInterval) return } pollCount++ checkOrderStatus() }, 3000) return () => clearInterval(pollInterval) }, [orderNo]) const handleCopy = async (text?: string) => { if (!text) return try { await navigator.clipboard.writeText(text) setCopyState('copied') setTimeout(() => setCopyState('idle'), 1500) } catch (e) { console.error('复制失败:', e) setCopyState('error') setTimeout(() => setCopyState('idle'), 1500) } } const license = orderInfo?.license const licenseError = orderInfo?.licenseError return (
{/* Logo */}
FLNXI Logo
{/* 支付结果卡片 */}
{orderStatus === 'loading' && (

正在确认支付结果...

请稍候,我们正在验证您的支付信息

)} {orderStatus === 'success' && (

支付成功!

感谢您的购买,订单已确认

{orderInfo && (
订单号: {orderInfo.order_no}
商品名称: {orderInfo.product_name}
支付金额: ¥{orderInfo.amount}
{orderInfo.trade_no && (
交易号: {orderInfo.trade_no}
)}
)} {/* 激活码信息 */} {license ? (

激活码已生成

请妥善保存,稍后可在此页面再次查看

激活码: {license.activationCode}
{license.planName && (
版本: {license.planName}
)} {license.isPermanent === false && license.expiresAt && (
到期时间: {license.expiresAt}
)} {license.isPermanent && (
有效期: 永久有效
)}
) : licenseError ? (

激活码生成失败

{licenseError.message || '系统在生成激活码时出现错误,请联系客服处理。'}

时间:{licenseError.at}

) : (

激活码生成中

支付已成功,系统正在生成激活码。请稍等片刻或稍后重新打开此页面查看。

)}
返回首页

我们将在1-3个工作日内为您开通服务

)} {orderStatus === 'pending' && (

支付处理中

您的订单已提交,正在等待支付确认

{orderNo && (

订单号:{orderNo}

)}

如果已完成支付,请稍候片刻,系统会自动更新订单状态

)} {orderStatus === 'failed' && (

支付失败

订单处理失败,请检查支付信息或联系客服

重新购买 联系客服
)}
) } export default function PaymentSuccessPage() { return (

页面加载中...

} >
) }