#alexgpeppe_unexpected
1 messages ยท Page 1 of 1 (latest)
๐ Welcome to your new thread!
โฑ๏ธ We automatically close idle threads, which makes them read-only. Make sure you stick around to chat in realtime!
๐ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1211996301122732084
๐ Have more to share? You can add more detail below, including code, screenshots, videos, etc.
โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question. Thank you for your patience!
Hi
Could you please share the PaymentIntent Id ?
the payment method Id pm_1OoO9NIiZAsO5iU5KZfIigX4 was created using the API POST /v1/payment_methods and not a Checkout Session
Can you share the Checkout Session Id you used in order to setup the payment ?
This is the checkout session id:
cs_test_c17NYydw1LetCj8PbRjtI2veueik8Ii9jHP2PYciLZj5ylRfyXBVpS5X7F
Thanks for sharing, checking....
Ok I see, in live mode, even if you set up a card, your integration need to expect sometimes getting 3DS by the card issuers.
It's not normal that using the test card 4000002500003155 after setting it up with SetupIntent you are still required a 3DS
Could you please make the test again and try to avoid the failure attempt when confirming the 3DS
but again, in live mode your integration need to handle the case where the bank issuer may request an additional 3DS auth even after setting it up
the case when using this test card: 4000002760003184
So, even if I confirmed the 3DS when adding the card, and then I use that card a minute later to create a payment, there is always a chance that I will have to confirm the 3DS again?
Yes in live mode, there is a chance but not in a minute in general.
That's strongly depends on the card issuer, it's not Stripe triggering that. It's the card issuer that may request that.
I made the test as you asked, the payment method I added is pm_1OoPBSIiZAsO5iU5b20WGHbP.
And could you please share the Checkout Sesison Id ?
Sure, that's it: cs_test_c1v3wRG3nFcSgc1nliRWwXALfU8jvECe5ejwLhGaACzznOlucwdSFAWMqj
Ok I just double checked with my colleagues, and the exemption of 3DS for the card 3155 is only for payment_intent with off_sesison: true:
https://docs.stripe.com/api/payment_intents/create#create_payment_intent-off_session
Can you make another test with a that attribute when creating the PaymentIntent ?
Sure, just give me few minutes. I guess I don't need to add the card again, I can reuse the ones already attached, right?
Yes
It worked, this is the payment intent: pi_3OoPPPIiZAsO5iU51Lvbq8C3 ๐
Awesome! sorry for the confusion at the beginning!
Thanks for your support, I have a related question now. When the customer is in the checkout page and is requested to confirm 3ds, the 3ds confirmation occurs in the browser and that's ok; but when the payment intent is created off-session server-side, how can the customer authorize 3ds when needed? ๐ค
how can the customer authorize 3ds when needed?
You need to bring the customer on session and ask them to complete their 3DS (like sending an email or a notification)
And then complete the 3DS:
https://docs.stripe.com/payments/3d-secure/authentication-flow#when-to-use-3d-secure
Or you can use Stripe Element and handle the 3DS next action:
https://docs.stripe.com/js/payment_intents/handle_next_action
Ok, thanks for your help!