diff --git a/Frontend/src/api/registration/get/get_payment_intent.ts b/Frontend/src/api/registration/get/get_payment_intent.ts index 2b94712e..850f78f6 100644 --- a/Frontend/src/api/registration/get/get_payment_intent.ts +++ b/Frontend/src/api/registration/get/get_payment_intent.ts @@ -4,6 +4,7 @@ export interface PaymentInfo { // This is the MySQL payment id that can be give to the payment service // to get the relevant data, not the Stripe ID! id: string + status: string } // We get the user_id out of the JWT key, which is why we only send the // competition_id diff --git a/Frontend/src/pages/register/components/StripeWrapper.jsx b/Frontend/src/pages/register/components/StripeWrapper.jsx index 44a2c0dc..78ba8959 100644 --- a/Frontend/src/pages/register/components/StripeWrapper.jsx +++ b/Frontend/src/pages/register/components/StripeWrapper.jsx @@ -40,7 +40,8 @@ export default function StripeWrapper() { queryKey: ['payment-config', competitionInfo.id, paymentInfo?.id], queryFn: () => getStripeConfig(competitionInfo.id, paymentInfo?.id), onError: (err) => setMessage(err.error, 'error'), - enabled: !isPaymentIdLoading && !isError, + enabled: + !isPaymentIdLoading && !isError && paymentInfo?.status !== 'succeeded', refetchOnWindowFocus: false, refetchOnReconnect: false, staleTime: Infinity, @@ -64,6 +65,9 @@ export default function StripeWrapper() { return ( <>