#cdanzig
1 messages · Page 1 of 1 (latest)
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.
So right now I am calling Stripe::Customer.update to change the subscription and it's throwing an error
Is this in test mode or live mode?
What's the error?
"Payment for this subscription requires additional user action before it can be completed successfully"
That indicates that 3D Secure is likely required to complete the transaction.
You would need to bring your customer on-session to complete authentication.
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.
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
You would confirm the Payment Intent client-side.
You would use Stripe.js, and if you want to use an existing card Payment Method you would use this for example: https://stripe.com/docs/js/payment_intents/confirm_card_payment#stripe_confirm_card_payment-existing
No, you should not use the deprecated one you linked to... it's deprecated.
Sure.
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?
They shouldn't be canceled unless you're explicitly canceling them. Can you paste that Payment Intent ID here for me?
pi_3NJjeuEUzT2F3ZNv1BHhUVGb
Thanks! Looking...
(sorry I realize I was pasting in the wrong update method above)
I am calling Stripe::Subscription.update(
Ah, okay, so you're using API version 2012-02-23 for this request, which is quite old and has some legacy behavior. You probably want to set payment_behavior to pending_if_incomplete so you can use pending updates: https://stripe.com/docs/billing/subscriptions/pending-updates