"use client"; import { useEffect, useState, Suspense } from "react"; import { FiArrowLeft, FiCheckCircle } from "react-icons/fi"; import toast from "react-hot-toast"; import { useSearchParams } from "next/navigation"; // 创建一个客户端组件来处理搜索参数 function SuccessContent() { const [closeAttempted, setCloseAttempted] = useState(false); const searchParams = useSearchParams(); const redirectUrl = searchParams.get("redirect_url"); // 处理重定向 useEffect(() => { if (redirectUrl) { // 添加一个小延迟,让成功动画有时间显示 const redirectTimer = setTimeout(() => { window.location.href = redirectUrl; }, 1500); return () => clearTimeout(redirectTimer); } }, [redirectUrl]); // 页面加载时的动画效果 useEffect(() => { const timer = setTimeout(() => { const successIcon = document.getElementById("success-icon"); if (successIcon) { successIcon.classList.add("scale-100"); successIcon.classList.remove("scale-0"); } }, 100); return () => clearTimeout(timer); }, []); // 尝试关闭页面 const handleClose = () => { // 如果有重定向URL,直接跳转 if (redirectUrl) { window.location.href = redirectUrl; return; } try { window.close(); // 设置一个短暂的延迟,检查页面是否仍然打开 setTimeout(() => { // 如果页面仍然打开,说明关闭失败 if (document.visibilityState !== "hidden") { setCloseAttempted(true); // 显示toast提示 toast.error("请手动关闭此页面并返回应用", { icon: "👋", duration: 5000, style: { background: "#333", color: "#fff", borderRadius: "8px", }, }); } }, 300); } catch (error) { console.error("关闭页面失败:", error); setCloseAttempted(true); toast.error("请手动关闭此页面返回应用"); } }; return (

支付成功

{redirectUrl ? "即将返回应用..." : "请关闭当前页面返回应用"}

); } // 主页面组件,包含Suspense边界 export default function SuccessPage() { return (
加载中...
} >
); }