#lauren_02189
1 messages · Page 1 of 1 (latest)
You can't really as that flow is dependent entirely on your customer being on-session to provide their card details into a Stripe payment UI
4000002760003184 always requires authentication, even if you set it up. So that explains that error
Anyway, this is the guide to follow: https://stripe.com/docs/payments/save-and-reuse
And you'd use: 4000002500003155
Is it possible to find out that the payment method always requires the presence of the client?
In a real world scenario? No. Ultimately the bank determines which transactions require auth/3DS so your integration needs to be able to handle scenarios where off-session payments require 3DS
We try to optimise for such situations via a Setup Intent
It turns out that even if the client adds a payment method using Setup Intent, we still cannot determine that confirmation is always needed for this payment method?
Correct yes
The Setup Intent will optimise for off-session payments, but ultimately the bank can still request auth/3DS on a per payment basis. There's no way to know that ahead of time
Another question using the card 4000002500003155
I added a payment method and confirmed it.
Is it possible not to output auth/3DS confirmation every time using client Secret?
I'm talking about the part on the client
stripe.confirmCardPayment(clientSecret, {
payment_method: paymentMethodId,
});
Not sure what you're asking me
I added a payment method and confirmed it.
How did you do that?
The same as for the card 4000002760003184
Only in this case I have
await this.stripe.paymentIntents.create({
amount: 10099,
currency: 'usd',
description: 'Test',
customer: stripeCustomerId,
payment_method: paymentMethod,
off_session: true,
confirm: true,
});
Works without errors
Well 3184 requires auth unless setup. So it depends on how you created the paymentMethod you're pasisng there. Can you share some IDs please
I mean
-
create payment Intents and return Client Secret
-
Using Client Secret to confirm the payment.
Is it possible to skip 3D Secure if it was passed 1 time, or is it activated anyway when the function is called
stripe.confirmCardPayment(clientSecret, {
payment_method: paymentMethodId,
});
As I said, it's hard for me to know for sure what the issue is without some IDs
Specifically the pm_xxx ID that maps to paymentMethodId there
Yes, 3184 always requires the presence of a user, you have already explained this to me.
I also tried with the card 4000002500003155 it does not require the presence of the user after adding the payment method
As I said, it depends on how you created the pm_xxx object
In your your original post you shared code using createPaymentMethod, which doesn't correctly setup the card
If you just share the pm_xxx ID I can verify this 🙂
pm_1NuuzrKl9ID02LDIhzkZVXXY
Yep, was created via createPaymentMethod: https://dashboard.stripe.com/test/logs/req_Qxk80f2BjJy0tR
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
Don't use that function/API. Instead, use a Setup Intent and collect payment details via UI like the Payment Element and confirm the intent
That likely explains why confirmCardPayment is requesting 3DS/auth as the test card hasn't been setup correct
Using
pm_1NuwGLKl9ID02LDIFZtrtbH1
And client_secret
pi_3NuwGsKl9ID02LDI0KoQogRw_secret_B8dYKtTTHLsPRYJ1YQb0W6xGF
I always have a 3D Secure form displayed, is this how it should be?
stripe.paymentIntents.create({
amount: 10099,
currency: 'usd',
description: 'Test',
customer: stripeCustomerId,
payment_method: paymentMethod,
});
stripe.confirmCardPayment(clientSecret, {
payment_method: paymentMethodId,
});
Hi! I'm taking over this thread.
Looks like you used this test card that ends with 3184:
This card requires authentication on all transactions, regardless of how the card is set up.
So yes it's expected that 3DS is always required.
I just need to understand when we use confirm Card Payment it will always output a 3D Secure form for cards that require it or can it be output only 1 times
To see all our test cards: https://stripe.com/docs/testing
Thank you now I realized that this will always appear regardless of the fact that the client has already passed this check