#dfg31197-setup-intent
1 messages · Page 1 of 1 (latest)
Hi there, thank you for providing the documentation you are referring to.
Step 1 to 4 displays how the Customer and SetupIntent are created, followed by the collection of payment method.
Step 5 shows you the creation of the PaymentIntent, this is how you can charge a saved payment method.
Hey, I'm able to make payments with some cards, but for a card that requires authentication from user everytime, the payment gets declined.
I'm referring to this test card 4000002760003184 from https://stripe.com/docs/testing
there is a 3DS prompt while saving this payment method, but when we go ahead and make the payment with its payment method, it gets declined
for the exact error message let me run the thing again, i believe it was asking for authentication
i used this example https://github.com/stripe-samples/saving-card-without-payment
3DS prompt shows up on
stripe
.confirmCardSetup(setupIntent.client_secret, {
payment_method: {
card: card,
billing_details: { email: email }
}
})
you have to use the 3155 test card
https://stripe.com/docs/testing#regulatory-cards ; the other cards don't simulate not requiring 3D Secure after being set up, only the 3155 ones does that
But this part of the docs suggest a bank could still require authentication on a payment even if has been set up once
https://stripe.com/en-in/guides/strong-customer-authentication#what-happens-if-an-exemption-fails
yep, they can indeed!
so you need to test both cases and be able to handle the case where you don't get an exemption
the 3155 card lets you test the 'happy' path where it does work and you get the exemption
yes please suggest how we can handle the exemption part
and use the saved card (not make user add their card details again)
or at least it used to, those docs were changed :/ but as you've seen, if authentication is required then you get a decline. You would contact the customer and then re-confirm the same PaymentIntent client side to present any authentication and complete the payment that way! (https://stripe.com/docs/js/payment_intents/confirm_card_payment#stripe_confirm_card_payment-existing)
alright so it sounds like i basically just have to call this function and it will trigger the 3DS flow again? I'll give it a shot