#cdanzig

1 messages · Page 1 of 1 (latest)

crystal loomBOT
tidal escarp
#

Hello! There's no way to guarantee 3D Secure won't be required in the future. Using a Setup Intent significantly reduces the chance that 3D Secure will be required later, but it does not eliminate the possibility.

cloud briar
#

So right now I am calling Stripe::Customer.update to change the subscription and it's throwing an error

tidal escarp
#

Is this in test mode or live mode?

cloud briar
#

Both

#

Presumably it's creating an invoice and payment intent on the backend for me

tidal escarp
#

What's the error?

cloud briar
#

"Payment for this subscription requires additional user action before it can be completed successfully"

tidal escarp
#

That indicates that 3D Secure is likely required to complete the transaction.

#

You would need to bring your customer on-session to complete authentication.

cloud briar
#

Okay- do I just try to capture that error?

#

Or is there a way to test ahead of time?

tidal escarp
#

What do you mean by capture?

#

There's no way to know for sure if 3D Secure will be required for a given transaction ahead of time, you can only tell when the transaction is attempted.

cloud briar
#

Okay.. so I should just call Stripe::Customer.update and check to see if that error is thrown

#

Then once I get them back on session how do I put them through the 3ds process

#

to verify the transaction

tidal escarp
#

You would confirm the Payment Intent client-side.

cloud briar
#

Is thete a method for that?

#

a la confirmPaymentIntent?

#

This one?

tidal escarp
#

No, you should not use the deprecated one you linked to... it's deprecated.

cloud briar
#

Ahhh

#

Fair

#

One more ? for you

tidal escarp
#

Sure.

cloud briar
#

It looks like the payment intents are being canceled when the error is thrown

#

Do I need to create a new one to authorize if that error happens?

#

Or can I auth a canceled payment intent?

tidal escarp
#

They shouldn't be canceled unless you're explicitly canceling them. Can you paste that Payment Intent ID here for me?

cloud briar
#

pi_3NJjeuEUzT2F3ZNv1BHhUVGb

tidal escarp
#

Thanks! Looking...

cloud briar
#

(sorry I realize I was pasting in the wrong update method above)

#

I am calling Stripe::Subscription.update(

tidal escarp
cloud briar
#

Ahhhh

#

Cool.. I'll give it a try