'use client'; import React, { useEffect, useState, Suspense } from 'react'; import { Elements } from '@stripe/react-stripe-js'; import { getStripe } from '@/lib/stripe-client'; import { useSearchParams } from 'next/navigation'; import CheckoutForm from '@/components/checkout/CheckoutForm'; import MockCheckoutForm from '@/components/checkout/MockCheckoutForm'; import CryptoCheckout from '@/components/checkout/CryptoCheckout'; import { Loader2, AlertCircle, ArrowLeft, UserCircle, CreditCard, Coins } from 'lucide-react'; import Link from 'next/link'; function CheckoutContent() { const searchParams = useSearchParams(); const amount = parseFloat(searchParams.get('amount') || '100'); const currency = searchParams.get('currency') || 'TL'; const refId = searchParams.get('ref_id') || 'SEC-99231-TX'; const callbackUrl = searchParams.get('callback_url') || '/'; const merchantId = searchParams.get('merchant_id') || null; const [clientSecret, setClientSecret] = useState(null); const [paymentData, setPaymentData] = useState(null); const [error, setError] = useState(null); const [paymentMethod, setPaymentMethod] = useState<'card' | 'crypto'>('card'); const isMock = process.env.NEXT_PUBLIC_USE_MOCK_PAYMENTS === 'true'; useEffect(() => { if (amount <= 0) { setError('Geçersiz işlem tutarı.'); return; } fetch('/api/create-payment-intent', { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ amount, currency, ref_id: refId, callback_url: callbackUrl, merchant_id: merchantId }), }) .then((res) => res.json()) .then((data) => { if (data.error) { setError(data.error); } else { setClientSecret(data.clientSecret); setPaymentData(data); // Auto-redirect if it's a redirect action if (data.nextAction === 'redirect' && data.redirectUrl) { setTimeout(() => { window.location.href = data.redirectUrl; }, 2000); // 2 second delay to show the message } } }) .catch(() => setError('Ödeme başlatılamadı. Lütfen tekrar deneyin.')); }, [amount, currency, refId, callbackUrl]); if (error) { return (

Hata Oluştu

{error}

); } return (
{/* Header */} {/* Main Content */}
{/* Left Column: Product Info (Cover Image) */}
Digital NFT Product {/* Overlay Gradient */}
{/* Content on Image */}
Premium Dijital Varlık

CyberCube #082

P2C ağına ömür boyu erişim sağlayan özel, yüksek sadakatli 3D üretken dijital koleksiyon parçası.

Satıcı

Ayris Digital Media INC.

Destek

help@ayris.dev

{/* Right Column: Payment Form */}
{!clientSecret ? (

Ödeme ekranı hazırlanıyor...

) : (
{/* Payment Method Selector */}
{paymentMethod === 'crypto' ? ( { setTimeout(() => { window.location.href = `${callbackUrl}?status=success&tx_hash=${hash}`; }, 2000); }} /> ) : (
{paymentData?.nextAction === 'redirect' ? (

Ödeme Sayfasına Yönlendiriliyorsunuz

Lütfen tarayıcınızı kapatmayın

Sizi güvenli ödeme adımına aktarıyoruz. Bu işlem birkaç saniye sürebilir.

) : isMock ? ( ) : paymentData?.provider === 'stripe' ? ( ) : (

{paymentData?.provider.toUpperCase()} Entegrasyonu

Bu ödeme yöntemi geliştirme aşamasındadır.

)}
)}
Mağazaya Dön
)}
{/* Footer */}

© 2026 P2CGateway Inc. Tüm hakları saklıdır.

); }
Mağazaya Dön
)} {/* Footer */}

© 2026 P2CGateway Inc. Tüm hakları saklıdır.

); } export default function CheckoutPage() { return (
}> ); }