#WhySoAsync-3ds-subs
1 messages · Page 1 of 1 (latest)
Are you testing with a card that needs 3DS on every single transaction? How have you implemented the upgrade to annual?>
4000000000003220
this card
upgrade to annual implemented yeah
The payment must complete 3DS2 authentication to be successful. By default, your Radar rules request 3DS authentication for this card.
But it never showed up
only on Monthly
Do you have the Subscription ID handy, so I can take a look? should be of the form sub_xxx
sub_1KQgxVDmVlmqORBIO4HCi6sR
I know secure 3d appears when i initiate the pay button on Stripe Card from frontend.
But the upgrade to yearly it's done from a custom button that does only stripe.subscriptions.update with the new price_id and id
So looking at that subscription, I see that payment was attempted for the upgrade, but authentication was needed (you can see the underlying pi_3KQgyEDmVlmqORBI3BeAGBsQ has a status of requires_action). You need to use Stripe.js ( handleNextAction) to trigger 3ds client-side.
import { CardElement, useStripe, useElements } from '@stripe/react-stripe-js';
I can't see the handle next action on react stripe documentation yet, where can i find it
Ah, it's called handleCardAction sorry about that!
Thank you ! Found it
So i get payment intent, confirm it with handleCardAction and then refresh everything, it should work
But i need to do it only if it's 3d secured?
If it's not what will happen? It will trigger the modal?
Yeah, you only need to do that if the underlying Payment Intent (found at latest_invoice.payment_intent) has a status of requires_action
Ah perfect ! Got it, thanks