#HamzaS-3DS
1 messages · Page 1 of 1 (latest)
However, when I do this and test with a card that requires the 3DS, Stripe returns a card error instead of sending back a 3DS confirmation URL.
yep, it does, that's expected(if you attempt a payment on-session and 3DS is required, we return the PaymentIntent in therequires_actionstatus, but if that happens off session, we return an error since the customer is not there to do the action). You're supposed to catch that error, check if auth is required, then contact the customer and have them come back and then you confirm the PaymentIntent again on-session, and that's how you handle 3D Secure being required on that payment. https://stripe.com/docs/payments/save-and-reuse-cards-only?platform=web#web-create-payment-intent-off-session describes the flow really well!
Very clear, thank you for the help, much appreciated!! Have a great day
Hey kerllekko, quick question: I saw the detailed flow in case of payment requiring authentication. Is there any way to receive from Stripe a stripe hosted url enabling the customer to authenticate with off_session = True, same as it does when off_session=False ?
no, when you do the off-session payment and it requires authentication you get a decline
like I said, it's intentionally different from what happens on-session
what would you do with the URL? Email it to the customer? you can't do that
the correct approach is what's documented, you re-confirm the PaymentIntent on the frontend with stripe.js once the customer is back on your site(so if you do email them, you email them a link to your website on a page that can do that)
Why not send them the link by email?
because it might expire, we don't intend for it to be used that way
what is 'it' in your sentence?
the url
there might not be a URL
you confirm the PaymentIntent and our SDK handles presenting 3D Secure
that might involve a URL or not, that's an implementation detail
if you want to present 3D Secure to a customer, you confirm the PaymentIntent on the frontend with our libraries
I meant the URL that Stripe returns in next_action_url / redirect_to_url / url