#WhySoAsync-3ds-subs

1 messages · Page 1 of 1 (latest)

uneven mortar
#

Are you testing with a card that needs 3DS on every single transaction? How have you implemented the upgrade to annual?>

brazen osprey
#

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

uneven mortar
#

Do you have the Subscription ID handy, so I can take a look? should be of the form sub_xxx

brazen osprey
#

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

uneven mortar
#

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.

brazen osprey
#

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

uneven mortar
#

Ah, it's called handleCardAction sorry about that!

brazen osprey
#

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?

uneven mortar
#

Yeah, you only need to do that if the underlying Payment Intent (found at latest_invoice.payment_intent) has a status of requires_action

brazen osprey
#

Ah perfect ! Got it, thanks