#JE-3ds-test-cards
1 messages ยท Page 1 of 1 (latest)
Hi! Let me help you with this.
That's not correct. requires_capture just means that you need to manually capture the funds after the payment method was authorized for the payment. You don't need to go through 3DS again.
You might be confusing it with requires_action.
You can read more here: https://stripe.com/docs/payments/paymentintents/lifecycle#intent-statuses
Yes, requires_capture is the state that I receive when I use a card without the 3ds active. This is the state that I am looking when I want the card that has 3ds active returned to me during the process of checkout. But when I add a card that has 3ds active, even accepting the authentication and saving the card, when I try to check out, the payment Intent confirmation return me the state of "requires_action".
Could you please share one such PaymentIntent ID? pi_xxx
yes
just one sec
pi_3NYq5vGlugZ9pH8B13512ow4
This is the card that I was testing
Hi there ๐ jumping in as my teammate needs to step away soon. Please bear with me a moment while I pull up that intent.
The test card you're using there, the one ending in 3246, is designed to always trigger a 3DS challenge, regardless of whether the Payment Method previously went through a Setup Intent. It is ultimately up to the issuer of a card to decide whether they will require a 3DS challenge to be completed for any transaction. When a Payment Method goes through the setup process, we do everything we can to minimize the chances that 3DS will need to be completed again, but we don't have full control over that so that test card is available to simulate scenarios where 3DS needs to always be completed.
I would suggest testing with the 3155 test card if you want to see the flow where an issuer only requires 3DS for the setup portion, and not subsequent payments.
JE-3ds-test-cards
Nice, I will test it. But let's say I do accept the 3ds authentication, where stripe stores the success state, and how can I retrieve this information?
Having the control of this information, would be nice
I believe the field you're looking for is on the associated Charge object, in payment_method_details.card.three_d_secure.result:
https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-three_d_secure-result
My understanding is that field won't show all of the states shown in the enum in the docs there, but that it will indicate if the 3DS authentication was successful at least.
Nice, I will check it out!
I have teste the card 3155, but I still got the confirmation with the status "requires_action". The paymentIntentId is pi_3NYqWjGlugZ9pH8B0yuZ3cCb
The payment I am trying to do is on_session
Stepping through the flow, but something I'm seeing is that it looks like the off_session parameter was not provided when creating the Payment Intent:
https://dashboard.stripe.com/test/logs/req_cWkhmJBEckwWSf
https://stripe.com/docs/api/payment_intents/create#create_payment_intent-off_session
and that parameter defaults to false if omitted
I'm not seeing anything wrong otherwise so far, so I think the behavior of that test card may be to always require 3DS for on-session payments. Let me know if that behavior persists after switching to creating an off-session Payment Intent.
I will give a try
You're passing the setup_future_usage parameter set to off_session when creating the Payment Intent, instead of passing the off_session parameter set to true.
My bad, I will change it
All good, it slipped my mind that we have a parameter with the same name as a value another parameter accepts, I could have been more explicit ๐
Hahahha no worries, this is my first time working Stripe, and this 3ds is new for me!
Hello Toby, it worked like a charm !!! Happy days! But I got a question.
Setting the parameter confirm: true while creating the payment Intent, the stripe.paymentIntents.confirm action is not required.
pi_3NYrmDGlugZ9pH8B0YI4jbyU
you can have a look
Correct, you can set confirm to true when creating the Payment Intent (as long as you also provide it a Payment Method), which will create and confirm the intent in a single request. You won't need to make an additional request to handle the confirmation.
That's nice, I had the payment method ID in my creation function, but I wasn't using it! I was using it in my confirmation method
But I will create some more tests
But thank you for the support, helped a lot! I was stuck on this since Tuesday hah hah
Happy to help, and glad to hear it's now working as expected!