#uh oh

1 messages · Page 1 of 1 (latest)

chrome hollyBOT
crude trellis
#

Hey there, how are you collecting payment method details?

#

Our recommended integration pattern with client confirmation handle 3ds for you automatically

#

If you're confirming on the server you'd need to handle 3ds flow with additional client steps to handle with the cardholder

haughty orbit
#

The flow I am trying to implement resembles the following:

  1. The customer requests an order
  2. The backend receives the order details (order amount, etc.)
  3. The backend creates a payment intent for that order
  4. How do I handle 3DS? I would like the order to be processed in the same API call made in step 1.
crude trellis
#

Can you share an example request that's not doing what you expect currently?

haughty orbit
#

I don't have an example request, because I don't know how to handle step 4

#

I'm not sure how to handle 3DS in step 4

crude trellis
#

If you're confirming on the server with confirm=true then you need to handle when the payment intent comes back with status=requires_action using the information above

#

I'm confused about the problem you're trying to solve. I assumed you were hitting issues with 3DS authentication requirements and didn't know how to handle them, but if so you'd have example requests where you tried to confirm and found that status

haughty orbit
#

From what I understand in the link you sent above, the backend needs to check for the status of the payment intent when it's created. If it is requires_action, then the backend must return a url to the frontend right?

Which means the frontend needs to go through the 3DS, and make another API request to my backend?

crude trellis
#

Roughly correct, yes. If you're using Stripe.js to handle the 3ds action you don't need to send a url, just the PI client_secret

#

If you want to redirect to the 3ds URL manually or show in an iframe, you must provide a return_url when you confirm the PI on your server