#WachiGO

1 messages · Page 1 of 1 (latest)

craggy tapirBOT
old matrix
#

From this screenshot, I can only see that Payment Result failed. Can you share the Setup Intent or Payment Intent used in Android SDK and describe what the problem is?

carmine sage
#

"id": "seti_1MjyC5FownbLmm9qC5Rgxi5g",

old matrix
#

Do you have any error message at the frontend?

carmine sage
#

com.stripe.android.core.exception.APIException
at com.stripe.android.payments.paymentlauncher.PaymentLauncherViewModel.postResult(PaymentLauncherViewModel.kt:242)
at com.stripe.android.payments.paymentlauncher.PaymentLauncherViewModel.access$postResult(PaymentLauncherViewModel.kt:52)
at com.stripe.android.payments.paymentlauncher.PaymentLauncherViewModel$onPaymentFlowResult$1$2$1.invokeSuspend(PaymentLauncherViewModel.kt:208)
at com.stripe.android.payments.paymentlauncher.PaymentLauncherViewModel$onPaymentFlowResult$1$2$1.invoke(Unknown Source:8)
at com.stripe.android.payments.paymentlauncher.PaymentLauncherViewModel$onPaymentFlowResult$1$2$1.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
at com.stripe.android.payments.paymentlauncher.PaymentLauncherViewModel$onPaymentFlowResult$1.invokeSuspend(PaymentLauncherViewModel.kt:207)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8741)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

#

i'm not sure this stack trace can help you or not

#

the problem is we just publish application to google play/app store last week and we found no any setupintent that require 3ds is success.

#

my guess is 3DS from Thailand do not work for Stripe

old matrix
#

have you tried non-Thai card?

carmine sage
#

we have no non-Thai card with 3DS

#

we tested with test card on test env and it works fine

night perch
#

Hi @carmine sage are you using PaymentSheet in your android app?

carmine sage
#

I used CardFormView

#

CardFormView is the same thing I used in my flutter app and found this issue

night perch
#

OK. Did you call handleNextActionForSetupIntent() to trigger the 3DS?

carmine sage
#

No. just confirm. normally if it need 3DS, the SDK will automatic open 3DS webview.

night perch
#

Can you share with me your flutter code?

carmine sage
#

this is my Android code

night perch
#

And what version of SDK are you using?

carmine sage
#

for Flutter the SDK version is 8.0.0 and 9.0.0

#

i already create issue on github page

night perch
#

You mean stripe-android sdk version 9.0.0 ?

carmine sage
#

it's flutter

#

implementation 'com.stripe:stripe-android:20.19.5'

#

the above is android

night perch
#

OK, that's the latest version of Stripe Android SDK

#

So after you call confirmSetupIntent, did the Android SDK launch the 3DS authentication?

carmine sage
#

for test card from Stripe is yes. it work as I expected

#

for Debit card and 3DS on production it throws an error

night perch
#

Does this problem only happen in Android? Since you are using flutter I'm assuming you have an iOS app as well?

carmine sage
#

I found the problem on Flutter first and then Stripe staff in discord told me Flutter SDK is not official one and He cannot help.

#

And then I report this issue to Flutter Stripe github page and they told me to report Stripe.

#

just to prove this issue come from which side. Stripe official SDK or Flutter Stripe (3rd party)

#

That's why I tried to reproduce on Android SDK

#

actually I found this issue on both Android and iOS

night perch
#

It's hard to tell, even though the log shows the error is raised from Stripe Android SDK, the detailMessage and requestId are not set. It could be a bug in the Stripe Android SDK, it's possible that the Flutter SDK didn't pass correct data to Stripe Android SDK and therefore the error.

#

You can try the same card with Checkout Session and if you are getting the same result?

carmine sage
#

this is my android project i used to reproduce

#

can I create Checkout Session from Stripe dashboard

night perch
#

You need to write some code to create a checkout session

carmine sage
#

on payment link works fine

#

what I should do next?

night perch
#

OK. I can't read Thai. Is this a setup mode checkout session or payment mode checkout session?

carmine sage
#

This is from payment link

#

It’s 3DS before do payment

night perch
#

Did you try using the same card in mobile app to confirm a PaymentIntent before?

carmine sage
#

Never. Use to confirm setup intent only

night perch
#

If possible, let's do two more testing

  1. Use this card to confirm a PaymentIntent in mobile
  2. Use this card to complete a setup mode Checkout session in web
#

Also about this for Debit card and 3DS on production it throws an error -> did you see the 3ds authentication page pops up in your app?

carmine sage
#

No 3ds authentication page popup

#

It throws an error immediately

#

And nothing happen

night perch
#

You mean the paymentResult returns Failed ?

carmine sage
#

Yes

night perch
#

OK, it returns Failed and it didn't crash the app right?

carmine sage
#

Can we keep this thread open. Your request might take time

#

Yes just return fail no app crash

night perch
#

Sure. I'll leave this thread open

carmine sage
#

checkout session is not a same thing as payment link right?

old matrix
#

Checkout Session and Payment Links are two different Stripe products, but Payment Link use Checkout Session under the hood

craggy tapirBOT
junior heathBOT
#

This thread has been archived. If you need help with anything else please ask in #dev-help or contact Stripe Support: https://support.stripe.com/contact

surreal pawn
#

Hi

carmine sage
#

i'm able to comment now

#

I just finish reproduce this issue on Payment Intent and Checkout session

#

For Payment Intent, I got this error when confirm payment intent with credit card form and the payment intent id is pi_3Ml5jUFownbLmm9q0bacTT5h

#

For checkout session, it show 3DS as I expected

#

what I can do next to fix this issue on mobile end

surreal pawn
#

Okie so to summarize:

  • Checkout on web works fine with the same card
  • PaymentIntent and SetupIntent doesn't work with cardFormView, via Flutter
#

Correct?

#

Do you have any other card to test other than this specific Thai debit card?

carmine sage
#

via Flutter and Android

surreal pawn
#

Does Flutter / iOS device work?

#

(I don't believe it will)

carmine sage
#
  • Flutter SDK on iOS and Android didn't work
  • Android Native SDK didn't work
  • iOS didn't test yet
surreal pawn
#

It is very likely because of the card. I would suggest try another 3DS card then. Btw did our provided 3DS cards work with your test mode?

#

ie. the cards here

carmine sage
#

yup. 3DS cards work fine on my test mode on both android and ios

#

i have no idea why on real card it works on payment link and checkout session but didn't work on mobile

surreal pawn
#

it's the card issuer bank's 3DS website

carmine sage
#

as I know for 3DS it has no any specific configure for 3DS

surreal pawn
#

Each bank has their own website, and some bank could have issues with their implementation

#

There is another thing I would test

#

testing the same card against PaymentSheet on mobile

#

PaymentSheet is our newer and recommended mobile components and it works more similar to Checkout in Web (more than cardFormView)

carmine sage
#

ok. might take some time. i will update the result on this thread

carmine sage
#

pi_3Ml6WDFownbLmm9q0VJihhFl_secret_zXFCjiGuTp9dUDQCnmuSp05H5

#

i think it's the same issue on payment sheet

surreal hatch
#

Hi! I'm taking over this thread.

#

Are you doing tests in live mode?

Do not use real card details. Testing in live mode using real payment method details is prohibited by the Stripe Services Agreement. Use your test API keys and the card numbers below.
https://stripe.com/docs/testing#use-test-cards

#

Can you try in test mode with one test card on the link above?

carmine sage
#

I already tested in test mode

#

and it works fine for all scenario

#

this issue happens only on real card that require 3ds action

#

my guess is happen only on 3DS from Thailand

surreal hatch
#

If it works in test mode then it should be good. But I don't know about this specific issue, maybe you could ask Stripe support directly: https://support.stripe.com/contact

carmine sage
#

Does it has any require 3DS card be in succeed state from Android or iOS SDK?

surreal hatch
#

Sorry I'm not sure I understand your question. Can you rephrase?

carmine sage
#

I just want to know is there any 3DS card from Thailand that do authentication on mobile pass to success state

surreal hatch
#

We have two test cards from Thailand