#Anne Sofie

1 messages · Page 1 of 1 (latest)

worn windBOT
verbal acorn
#

hi! It's not expected that all customers have to do 3D Secure, it would only happen if it's needed(bank declines the unauthenticated payment or 3DS is required for regulatory or fraud prevention reasons) so that sounds normal.

raw stream
#

but the thing is that theres an error for the ones that dont get redirected. like they dont get the oppertunity to fill in the 3DS and on stripe connect it says that it needs 3DS

verbal acorn
#

do you have more details like the specific error message and an example PaymentIntent ID pi_xxx that has a problem?

raw stream
#

"id": "pi_3Lw2t4Ff2QLqqCRJ0WjsKKCS",

#

I am not the developer. my developer will join our convo in a sec. his more technical and has set up the stripe integration

verbal acorn
#

ok thanks I'll wait for them then. There's nothing I can say from our logs. What I need from you is

  • exact code you're using to create the PaymentIntent and attempt to handle 3D Secure
  • what exact error message you're seeing.
raw stream
#

it just says "Error:"

verbal acorn
#

that doesn't give me anything to work with unfortunately. I need technical details from the developer of the payment integration such as the exact code you use on the back and frontend and the internal error message from your logs.

rancid barn
#

Hello

#

I'm a developer of the code app uses

#

so basically we have ReactNative application and using @stripe/stripe-react-native 0.5.0

#

the flow is to use backend to create PI and then back with client secret to front to handle_next_action, and using handleNextAction to handle next action

verbal acorn
#

why do you do it that way instead of the default integration of confirming the PaymentIntent on the frontend?

#

but anyway, in theory that should work. What's the error message logged in the app when something goes wrong and what's the exact code being used in the app for handleNextAction?

rancid barn
#

const { error } = await handleNextAction(
result.payment_intent_client_secret
);
const { paymentIntent } = await retrievePaymentIntent(
result.payment_intent_client_secret
);

#

the second call to get paymentIntent is because of Android issue with handleNextAction which doesn't return paymentIntent

#

also at backend the next check to know if require some action

if (
        intent.status === "requires_action" &&
        intent.next_action.type === "use_stripe_sdk"
      ) {
verbal acorn
#

what's the value of error in cases where you have a problem? Do you know what the customer sees exactly?

rancid barn
#

Customer just see a "Payment Error"

#

no details

verbal acorn
#

do you have a screenshot?

#

can you add logs to your app and log what the value of error is? Can you replicate the problem in test mode using some of our test cards, especially trying the ones that use 3D Secure v2? https://stripe.com/docs/testing#regulatory-cards Does the problem persist if you update to the latest version of stripe-react-native?

rancid barn
#

Didn't check as a lot of stuff need to be updated in order to use latest stripe package

#

what exactly should be logged from error returning from handleNextAction?

#

Also is it possible taht the issue is because we only return action to handle for use_stripe_sdk?

verbal acorn
verbal acorn
rancid barn
#

That for some users 3d secure popup is not appear

verbal acorn
#

yep, but we have no logs or visibility on our side I'm afraid, so we'd need you to take some of the debugging steps mentioned above to try to get more information on what exactly is happening here and obtain detailed logs from the device where possible

raw stream
#

Just another question while both of you here: is it possible to only show the 3DS when people are buying for more then for examble 50 dollars. so all orders under that amount dont have to do 3DS

verbal acorn
#

not really since 3D Secure is often a regulatory requirement and it's enforced by banks(they can request 3D Secure on any payment at any time)

raw stream
#

okay, thanks

rancid barn
#

BTW, what step is if PI has the next status "The cardholder began 3D Secure authentication but has not completed it." is it mean that 3dsecure modal was opened but then closed?

verbal acorn
#

not necessarily, it just means the PaymentIntent is in requires_action

#

the labels the dashboard show are not really 100% accurate or specific, they're for non-technical users to have a sense of the status. The status on the PaymentIntent object is the source of truth.

#

so it might mean you created the PaymentIntent and attempted to showed 3D Secure and there was some error that you need to check your client side logs, for it might mean you created the PaymentIntent and you never got to the point of running any code to attempt anything on the client side for some other reason, so really it depends on the specifics of the case and the exact pi_xxx and is why you need to log things