#HamzaS-3DS

1 messages · Page 1 of 1 (latest)

floral bear
#

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 the requires_action status, 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!

radiant sapphire
#

Very clear, thank you for the help, much appreciated!! Have a great day

radiant sapphire
#

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 ?

floral bear
#

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)

radiant sapphire
floral bear
#

because it might expire, we don't intend for it to be used that way

radiant sapphire
#

Ok I see

#

What is it used for, when on-session?

#

Out of curiosity

floral bear
#

what is 'it' in your sentence?

radiant sapphire
#

the url

floral bear
#

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

radiant sapphire
#

I meant the URL that Stripe returns in next_action_url / redirect_to_url / url