#ryanw
1 messages · Page 1 of 1 (latest)
Hello! Can you tell me more about the process and when exactly you need to trigger it?
Essentially, we want to implement logging when a 3DS challenge is faced, so that we know when challenges happen.
And then customer support is aware and can act accordingly if a user is facing further issues
but essentially, we just want to identify on our end through our own monitoring that a challenge has indeed been issued
This logging doesn't need to be immediate, just need it to happen at some point, on any 3DS challenge
Gotcha. You can look at the Charges associated with the Payment Intent and see if payment_method_details.card.three_d_secure is populated or not: https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-three_d_secure
nice, thank you! One interesting thing I notice as well is the payment_intent.next_action field
would the following also identify a 3DS challenge?
next_action.type == "use_stripe_sdk" and next_action.use_stripe_sdk.type == "three_d_secure_redirect"
The use_stripe_sdk is for internal use only and is subject to change at any time. You should not use anything inside there.
got it, that makes sense. Alright then, I'll follow your original suggestion. Thanks!
Hmm, I did a test of this, and it appears the charges data field is empty on the event?
This is the data I get:
"object": "list",
"data": [
],
"has_more": false,
"total_count": 0,
"url": "/v1/charges?payment_intent=[redacted]"
},```
Can you give me the Payment Intent ID?
To clarify, we want to identify any 3DS challenge, whether the customer successfully paid or not. So perhaps there isn't always a charge?
sure, wasn't sure if that was sensitive - it's pi_3MoXErGcOvBbq6Ss0Qk1Yaad
Payment Intent IDs are not sensitive.
Hm, that Payment Intent does have at least one Charge associated. What are you seeing in the latest_charge property?
Ah yes, I did eventually go through with payment, so I do see a charge now... but I was specifically looking at the payment_intent.requires_action event here, where the charges list is empty, and latest_charge is null in that event as well
It'd be ideal to hook into that requires action event to identify this
I don't think that's possible. You need to wait until the Charge exists.
What if the user never completes the challenge, and abandons the session? Will a charge be generated then?
I think it depends on what requests 3D Secure, actually. I don't think there will always be a Charge, no.
So with that, is there any surefire way to identify a 3DS challenge has happened, regardless of if the user pays, abandons, etc?
Not that I can think of, no. There will always be exceptions to all of the approaches I can think of. Let me ask internally though, someone else may have a way to do it.
Yeah, no, we don't think this is possible. You can come close with the Charges approach, but we can't think of a way to do this across the board every single time.
got it, appreciate you looking around. We'll have to figure something else out on our end then. Thanks for the help!