#JeremyFlight
1 messages ยท Page 1 of 1 (latest)
Hi ๐
Dashboard links aren't really useful for others (we can't see things from your dashboard). Can you just share the event IDs?
Yes - this is my setup intent event ID evt_1M1Xc7BZ9qUe1kQ5IbVDzrME and this is my payment intent event ID: evt_3M1Xc8BZ9qUe1kQ50fDuQvxf
Do you have radar rules set up that require 3DS?
Yes, as far as I'm aware. Where do I double-check that?
Wait, you're also using test card 3220
By default, your Radar rules request 3D Secure authentication for this card.
This will always request 3DS for a payment
Yes - I've already completed the 3DS verification for this payment method though.
That doesn't matter
The details section on the test card states it will require it for a payment
If you want to test a flow where 3DS won't be required once it's set up you want to use card 3155: https://stripe.com/docs/testing#authentication-and-setup
Ah, OK - do you have a test card that will require 3DS verification the first time when I create a Setup Intent and will not typically require 3DS verification for a subsequent payment?
You beat me to it!"
3155?
Yes, that will test the flow you are trying to replicate
It will require 3DS authentication unless it has been set up previously with 3DS auth.
OK - I've just used 3155 test card but get the same result: this is my setup intent evt_1M1YgUBZ9qUe1kQ5VgW83Ef2 and this is my payment intent: evt_3M1YgVBZ9qUe1kQ51sT0Phuh. Payment Intent is showing as status = requires_action even though I completed the 3DS verification
You need to specify off_session when creating the PaymentIntent. We walk through is here: https://stripe.com/docs/payments/save-and-reuse
Thank you - think that's sorted it. ๐
Great ๐ happy to hear it ๐
When I use this code to check for the "complete" state on a Stripe JS cardElement, I notice it returns "complete" when the user has entered the card number even though they haven't yet entered an expiry date or CV2 number. How can I check that the user has completed all three parts of the card element?
cardElement.on("change", (event) => {'
let cardErrors = document.getElementById("cardErrors");
cardErrors.textContent = "";
if (event.complete) {
document.getElementById("button-Submit").disabled = false;
} else {
document.getElementById("button-Submit").disabled = "disabled";
}//if
if (event.error) {
cardErrors.textContent = event.error.message;
}//if
});