There are two places when the app silently interacts with the stripe api:
In dds_registration/views/helpers/start_stripe_payment_intent.py:initiate_stripe_payment, on PaymentIntent creation.
On the client side, in src/assets/stripe-init/stripe_payment_intents_support.ts:submitStripeForm, when api requested (via stripe.confirmPayment) before 'success' redirect.
In the 1st case it's possible to return to previous approach, when started the payment and fetched the secret via async ajax request after the payment page has been already opened: this operation requires a noticeable time (up to 1-2 seconds required to open the page).
In the 2nd case, we can display (for example) 'busy' spinner to show that an operation is being processed.
There are two places when the app silently interacts with the stripe api:
dds_registration/views/helpers/start_stripe_payment_intent.py:initiate_stripe_payment
, onPaymentIntent
creation.src/assets/stripe-init/stripe_payment_intents_support.ts:submitStripeForm
, when api requested (viastripe.confirmPayment
) before 'success' redirect.In the 1st case it's possible to return to previous approach, when started the payment and fetched the secret via async ajax request after the payment page has been already opened: this operation requires a noticeable time (up to 1-2 seconds required to open the page).
In the 2nd case, we can display (for example) 'busy' spinner to show that an operation is being processed.