#deondk-3DS

1 messages · Page 1 of 1 (latest)

wispy trail
#

Unfortunately you cannot tell if 3DS is required at that point.

#

Going to put your reply here

Then how would I know to let the transaction continue or not?

wraith willow
#

is there any variable in the paymentintent I can look for?

wispy trail
#

At what point?

wraith willow
#

after creating the paymentintent

wispy trail
#

Unfortunately it looks like you can't tell until you attempt to confirm the PaymentIntent

#

I am unfamiliar with your module but it sounds like you still have access to the PaymentIntent. Can you see the next_action and next_action.redirect_to_url properties?

wraith willow
#

this is what I see:

#

{<Stripe.PaymentIntent@62932632 id=pi_3JmGLW2Z7qPIBjK41XtXNq7G> JSON: {
"id": "pi_3JmGLW2Z7qPIBjK41XtXNq7G",
"object": "payment_intent",
"amount": 500,
"amount_capturable": 0,
"amount_received": 0,
"application": "ca_JFiug6dTrAjd06KVTsqxf3UEKA80oI9z",
"application_fee_amount": 0,
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "automatic",
"charges": {
"object": "list",
"data": [],
"has_more": false,
"url": "/v1/charges?payment_intent=pi_3JmGLW2Z7qPIBjK41XtXNq7G"
},
"client_secret": "pi_3JmGLW2Z7qPIBjK41XtXNq7G_secret_1dZhLdajNiw4MnZbbAklka4kQ",
"confirmation_method": "automatic",
"created": 1634642346,
"currency": "gbp",
"customer": null,
"description": "LMS PAY Payment BY 271554",
"invoice": null,
"last_payment_error": null,
"livemode": false,
"metadata": {},
"next_action": {
"redirect_to_url": null,
"type": "use_stripe_sdk"
},
"on_behalf_of": null,
"payment_method": "pm_1JmGLL2Z7qPIBjK4eOSJ7NG8",
"payment_method_options": {
"card": {
"request_three_d_secure": "automatic"
}
},
"payment_method_types": [
"card"
],
"receipt_email": null,
"review": null,
"setup_future_usage": null,
"shipping": null,
"source": null,
"statement_descriptor": null,
"statement_descriptor_suffix": null,
"status": "requires_action",
"transfer_data": null,
"transfer_group": null,
"allowed_source_types": null
}}

#

I can see status = "requires_action"

wispy trail
#

Thank you. Let me check in to if there is anything else you can do here

#

Unfortunately I am not finding much that could be helpful for a workaround and I am unsure what your capabilities on this are.

#

I would reach out to the developers of this library. They will likely have a better idea of what if anything you can do here. Apologies, should have pushed for that upfront.

wraith willow
#

yeah I have

#

major issue the arent updating soon...

wispy trail
#

Ah gotcha. Sorry to hear.

wraith willow
#

so we have found now that there were some 3DS payments that went through as success on our systems

#

is there any way to filter these payments on stripe dashboards to only view incomplete payments?

wispy trail
#

I believe so, let me check how

wraith willow
#

I got the filter now

#

but cant seem to export only Incomplete payments

wispy trail
#

Was about to say filter on status of Incomplete

#

What are you trying to do with that?

wraith willow
#

I want to export only incomplete payments

#

regarding the 3Ds can I not look for the requires_action variable

wispy trail
#

Not look at it how?

#

And yes it looks like you would have to export all and manually filter after

wraith willow
#

I have exported all

#

but it doesnt export incomplete payments

wraith willow
wispy trail
#

Interesting. My incomplete payment from testing today is in my sheet.

#

Checking that field would be a good way to tell if 3DS is required after trying to confirm it.

wraith willow
#

so If I want to implement 3DS on my outdated sdk is there a way I send the user to a webview for 3DS and getting a success url back?

#

for some reason it keeps on exporting all my transactions irrespective of my filter

vague kite
#

Hi, please bear with me a moment while I get caught up on this thread.

wraith willow
#

ok

#

got the transactions exported ok

vague kite
wraith willow
#

yeah but Im using an outdated sdk in Xamarin so need some kind of way to know whether the card needs 3DS from paymentIntent then after that send him to a url

#

how would I know where to send user based on paymentIntent

vague kite
#

The only way I can think of is what Pompey already mentioned. You'll need to try confirming the paymentInent and see if it moves into a requires_action status.

wraith willow
#

yes but how do I know where to send user for 3Ds in webview?

vague kite
wraith willow
#

ok will it be populated after being confirmed?

#

actually I dont see a next_action in my paymentIntent

#

actually sorry I see it but it is null

vague kite
#

And what is the status of that paymentIntent?

wraith willow
#

{<Stripe.PaymentIntent@62932632 id=pi_3JmGLW2Z7qPIBjK41XtXNq7G> JSON: {
"id": "pi_3JmGLW2Z7qPIBjK41XtXNq7G",
"object": "payment_intent",
"amount": 500,
"amount_capturable": 0,
"amount_received": 0,
"application": "ca_JFiug6dTrAjd06KVTsqxf3UEKA80oI9z",
"application_fee_amount": 0,
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "automatic",
"charges": {
"object": "list",
"data": [],
"has_more": false,
"url": "/v1/charges?payment_intent=pi_3JmGLW2Z7qPIBjK41XtXNq7G"
},
"client_secret": "pi_3JmGLW2Z7qPIBjK41XtXNq7G_secret_1dZhLdajNiw4MnZbbAklka4kQ",
"confirmation_method": "automatic",
"created": 1634642346,
"currency": "gbp",
"customer": null,
"description": "LMS PAY Payment BY 271554",
"invoice": null,
"last_payment_error": null,
"livemode": false,
"metadata": {},
"next_action": {
"redirect_to_url": null,
"type": "use_stripe_sdk"
},
"on_behalf_of": null,
"payment_method": "pm_1JmGLL2Z7qPIBjK4eOSJ7NG8",
"payment_method_options": {
"card": {
"request_three_d_secure": "automatic"
}
},
"payment_method_types": [
"card"
],
"receipt_email": null,
"review": null,
"setup_future_usage": null,
"shipping": null,
"source": null,
"statement_descriptor": null,
"statement_descriptor_suffix": null,
"status": "requires_action",
"transfer_data": null,
"transfer_group": null,
"allowed_source_types": null
}}

#

status = "requires_action"

#

so as in interim solution I can check status field...if not = "succeeded" then cancel transaction

#

but still need some help to create a long term solution to handle 3Ds

vague kite
wraith willow
#

ok so hypothetically if I get a return URL I then Send the app user to a webview to input 3ds how do I then send him back to app with a success message?

wraith willow
vague kite
#

To clarify:

  1. You will provide a return_url when creating the paymentIntent
  2. When the paymentIntent confirms (happens automatically based on the values you're providing) you will check the status field to see if it is requires_action
  3. If so, you'll check the next_action hash on the paymentIntent, particularly you're looking for url inside of the redirect_to_url field.
  4. You'll redirect your customer to the url found in Step 3
  5. Once your customer completes the 3DS flow they'll be sent back to the return_url that you provided.
#

You'll likely want to it to be some sort of confirmation screen/page that confirms the payment was successful and displays a message accordingly.

wraith willow
#

ok will have to think about this

#

because I am in an app...

#

not sure how I will handel comms between the webview and app

vague kite
#

I'm not certain if it's supported by the platform you're using to build your app, but you might be able to pass an app style uri as your return_url so it attempts to redirect to a screen in your app.
https://www.w3.org/TR/app-uri/

nimble cape
#

hey there just catching up with this so @vague kite can step away 👋

wraith willow
#

does this look like a valid 3DS url

nimble cape
#

i deleted you message becasue others can access those, you should not share them

#

but yes that is the sort of URL one would expect

nimble cape
#

@wraith willow Not sure what you mean by comms here, but the idea would be setting the return_url when you confirm as @vague kite mentioned, then redirect your customer to the URL provided. When they complete the action flow via the webview, they will be sent to the return_url you provide. which can be eg an app deeplink

#

I suggest you work through trying to build this and let us know when you encounter issues

wraith willow
#

ok I will do thanks

nimble cape
#

@wraith willow just for our info, can you share the exact package you're using for this?

wraith willow
#

but I have made some workarounds as this is so outdated

little scaffold
#

Hello! I'm taking over for @nimble cape, let me get caught up...