#youzi
1 messages · Page 1 of 1 (latest)
That payment intent still has not succeeded, 3DS needs to be completed for it
When the intent's status is requires_action you can bring the user on to your site and present the 3DS modal to them to complete the payment https://stripe.com/docs/payments/3d-secure#when-to-use-3d-secure
@carmine quail Can I bypass the verification somehow for the purpose of testing the webhook?
Oh whoops I am sorry I don't know how I skipped that you are using stripe trigger here. I am not sure why this went in to requires action on your account. Checking in to this and will get back to you
@carmine quail: FYI, I now received the succeeded event. But it took 8 minutes.
2023-04-12 16:47:50 --> payment_intent.requires_action [evt_3Mw4xeBLgDt8GrDE1YNwQ3it]
2023-04-12 16:47:50 --> payment_intent.created [evt_3Mw4xeBLgDt8GrDE1ZIVCZuC]
2023-04-12 16:47:51 <-- [500] POST http://localhost:27851/payment-success [evt_3Mw4xeBLgDt8GrDE1YNwQ3it]
2023-04-12 16:47:51 <-- [500] POST http://localhost:27851/payment-success [evt_3Mw4xeBLgDt8GrDE1ZIVCZuC]
2023-04-12 16:56:02 --> payment_intent.requires_action [evt_3Mw4vuBLgDt8GrDE0njiD5MQ]
2023-04-12 16:56:02 <-- [500] POST http://localhost:27851/payment-success [evt_3Mw4vuBLgDt8GrDE0njiD5MQ]
2023-04-12 16:56:05 --> payment_intent.succeeded [evt_3Mw4vuBLgDt8GrDE0pMmKdSK]
2023-04-12 16:56:05 --> charge.succeeded [evt_3Mw4vuBLgDt8GrDE0kQnqGsi]
2023-04-12 16:56:05 <-- [500] POST http://localhost:27851/payment-success [evt_3Mw4vuBLgDt8GrDE0pMmKdSK]
2023-04-12 16:56:05 <-- [500] POST http://localhost:27851/payment-success [evt_3Mw4vuBLgDt8GrDE0kQnqGsi]
Please let me know if there is a faster flow for developing/testing.
It looks like that is because that is when you were able to complete 3DS client side
Apologies, am having trouble seeing why it went in to requires_action in the first place. I will consult my colleagues and get back to you
Hi there 👋 running the same in my test account so I can compare the two flows.
Are all of the lines that you provided from the execution of a stripe trigger command? Looking at the payment_intent.succeeded Event, it looks like that was triggered by the completion of a payment intent via a stripe.js integration.
stripe listen tracks all Events related to your account, so I believe it may have picked up Events from other testing that was done. Would you be able to clear your console and trigger a payment_intent.succeeded Event again, and then paste the outputs from stripe listen? I'd like to take a closer look at the Payment Intent that is being created by stripe trigger.
stripe listen --forward-to localhost:27851/payment-success
> Ready! You are using Stripe API Version [2020-08-27]. Your webhook signing secret is whsec_f61bc51cf8b3009dd41d2b62c1f6b920b73fd8053cd826b0d6c342d74965e83d (^C to quit)
2023-04-12 17:39:49 --> payment_intent.requires_action [evt_3Mw5lwBLgDt8GrDE1IWXBe3Q]
2023-04-12 17:39:49 --> payment_intent.created [evt_3Mw5lwBLgDt8GrDE1jC1aoUq]
2023-04-12 17:39:49 <-- [500] POST http://localhost:27851/payment-success [evt_3Mw5lwBLgDt8GrDE1IWXBe3Q]
2023-04-12 17:39:49 <-- [500] POST http://localhost:27851/payment-success [evt_3Mw5lwBLgDt8GrDE1jC1aoUq]
I do think my colleague is also testing things
I just checked the dashboard and it shows me the following error:
Connection to remote host denied (please contact support at https://support.stripe.com/contact/)
It seems it's trying to send the event to the remote endpoint (which is not online)
Where are you seeing that error exactly? I'm not seeing this Event evt_3Mw5lwBLgDt8GrDE1IWXBe3Q being sent to any endpoints other than the Stripe CLI listener.
I think there may be a Request 3DS rule in your account that is causing this behavior, changing somethings in my test account and rerunning my tests.
Video added for clarity
Sorry I think this error was actually for the online endpoint, likely related to my collegues testing — so not related
Think I found it, turning on the Request 3DS if 3D secure is supported for card rule in my dashboard caused the Payment Intent created by stripe trigger to move to a requires action state rather than succeeding.
Those rules are listed and configured here:
https://dashboard.stripe.com/test/settings/radar/rules?startDate=2022-10-12&endDate=2023-04-11
Sign in to the Stripe Dashboard to manage business payments and operations in your account. Manage payments and refunds, respond to disputes and more.
Aha, so do you recommend disabling this setting? Or is there a way to trigger the event in a way that does not require action?
If it doesn't impede any other testing that is going on, then turning the rule off is likely the fastest approach. If that rule is there to test specific flows, then rather than disabling it you may need to edit it so that it doesn't trigger for the card being used by Stripe CLI (our 4242 test card).
So how would I edit this? stripe trigger payment_intent.succeeded --edit gives me the following:
{
"_meta": {
"template_version": 0
},
"fixtures": [
{
"name": "payment_intent",
"path": "/v1/payment_intents",
"method": "post",
"params": {
"amount": 2000,
"confirm": "true",
"currency": "usd",
"description": "(created by Stripe CLI)",
"payment_method": "pm_card_visa",
"payment_method_types": ["card"],
"shipping": {
"name": "Jenny Rosen",
"address": {
"line1": "510 Townsend St",
"postal_code": "94103",
"city": "San Francisco",
"state": "CA",
"country": "US"
}
}
}
}
]
}
I mean which change should I make in this payload? (I can operate VIM :D)
You wouldn't .. or actually, you might be able to update the payment_method being used there to point to one that doesn't support 3DS at all, like pm_card_amex_threeDSecureNotSupported, so 3DS can't be completed in which case I'm pretty sure that rule won't intercept the payment.
https://stripe.com/docs/testing?testing-method=payment-methods#regulatory-cards:~:text=pm_card_amex_threeDSecureNotSupported
Success!
🥳 excellent!