From d3bedeb56d7b1b57cd8160ef4df0c5ccc3a68dbf Mon Sep 17 00:00:00 2001 From: Hemant Vishwakarma Date: Thu, 23 Apr 2026 19:02:42 +0530 Subject: [PATCH] Again rechange in payment success --- src/Redux/services/cards.service.ts | 8 ++++---- src/pages/PaymentSuccessPage.tsx | 31 ++++++++++++++--------------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/Redux/services/cards.service.ts b/src/Redux/services/cards.service.ts index a35d083..efac3eb 100644 --- a/src/Redux/services/cards.service.ts +++ b/src/Redux/services/cards.service.ts @@ -43,7 +43,7 @@ export const cardsApi = createApi({ }), payForCard: builder.mutation({ - query: (id) => ({ + query: (id) => ({ url: `/website/passes/${id}/pay`, method: "POST", body: {}, @@ -51,10 +51,10 @@ export const cardsApi = createApi({ }), confirmCardPayment: builder.mutation({ - query: ({ bookingId, paymentIntentId }: { bookingId: string; paymentIntentId: string }) => ({ - url: `/website/passes/${bookingId}/confirm-payment`, + query: (id) => ({ + url: `/website/passes/${id}/confirm-payment`, method: "POST", - body: { paymentIntentId }, // ✅ send paymentIntentId to backend + // body: id, }), }), diff --git a/src/pages/PaymentSuccessPage.tsx b/src/pages/PaymentSuccessPage.tsx index bfd2ab0..0f6fb1e 100644 --- a/src/pages/PaymentSuccessPage.tsx +++ b/src/pages/PaymentSuccessPage.tsx @@ -15,6 +15,7 @@ interface PaymentSuccessPageProps { user?: { email: string; name: string } | null; } +// Helper to get cookie value const getCookie = (name: string): string | null => { const value = `; ${document.cookie}`; const parts = value.split(`; ${name}=`); @@ -38,36 +39,34 @@ export function PaymentSuccessPage({ useEffect(() => { const confirm = async () => { - // 1️⃣ Get bookingId from storage / cookie + // Try all possible sources let bookingId = getCookie('pendingBookingId'); if (!bookingId) bookingId = localStorage.getItem('pendingBookingId'); if (!bookingId) bookingId = sessionStorage.getItem('pendingBookingId'); if (!bookingId) bookingId = searchParams.get('bookingId'); - // 2️⃣ Get payment_intent from URL (Stripe redirect) - const paymentIntentId = searchParams.get('payment_intent'); - - console.log('🔍 Retrieved data:', { bookingId, paymentIntentId }); + console.log('Retrieved bookingId from sources:', { + cookie: getCookie('pendingBookingId'), + localStorage: localStorage.getItem('pendingBookingId'), + sessionStorage: sessionStorage.getItem('pendingBookingId'), + queryParam: searchParams.get('bookingId'), + final: bookingId, + }); if (!bookingId) { setStatus('error'); - setErrorMsg('Booking ID not found. Please contact support.'); - return; - } - - if (!paymentIntentId) { - setStatus('error'); - setErrorMsg('Payment intent missing. Please contact support.'); + setErrorMsg( + 'Booking ID not found. Please contact support with your order details. ' + + 'If you just completed payment, your order may still be processing.' + ); return; } try { - // 3️⃣ Call confirm endpoint with paymentIntentId - await confirmPayment({ bookingId, paymentIntentId }).unwrap(); + await confirmPayment(bookingId).unwrap(); setStatus('success'); toast.success('Payment confirmed! Your order is complete.'); - - // 4️⃣ Clean up stored bookingId + // Clean up all storage document.cookie = 'pendingBookingId=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;'; localStorage.removeItem('pendingBookingId'); sessionStorage.removeItem('pendingBookingId');