question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Android] 3DSecure confirmation screen closed if app is put in background

See original GitHub issue

Hi all. We currently have a bug happening on Android only. After using confirmPaymentMethod on a payment, the 3DS screen is brought up. If instead of confirming / denying the payment on this screen we go into background and then bring the app back to active again, 3DS screen is just dismissed, so the app is stuck. Obviously, at that moment Stripe payment is pending, but there’s no way to bring up the payment screen again. Even if there was, then the process would be repeated - if the user has to go to the bank’s app in order to confirm the payment or whatever, the problem would come back and always be present.

Note: this does not happen on iOs.

To Reproduce Steps to reproduce the behaviour:

  1. Boot Android React Native app.
  2. Confirm payment with a 3DS card.
  3. When the hooks.stripe.com screen with the confirmation gets brought up, go into background.
  4. Wait 2 seconds, open the app again.
  5. There you have a problem.

Expected behavior The expected behaviour would be the same as in iOs, for this screen not to be dismissed until the user does some action upon it.

Desktop (please complete the following information): OS: MacOs Big Sur 11.2.3 Browser: Chrome Version: 91.0.4472.77 (Official Build) (x86_64)

Smartphone (please complete the following information): Device: Honor 9 Lite Android version: 9

Additional context Stripe version: 0.1.4 React native version: 0.63.4

Thanks in advance!

Issue Analytics

  • State:open
  • Created 2 years ago
  • Reactions:7
  • Comments:22 (5 by maintainers)

github_iconTop GitHub Comments

7reactions
cfeeney5commented, Mar 27, 2022

Is there any update on this bug? Its causing a lot of issue for customers

6reactions
aaronSigcommented, Aug 12, 2021

I’m having the same issue.

To recreate:

  • Initiate payment
  • Leave the app to check for a 3D secure SMS.
  • Re-open the app by clicking on the app icon on the home screen

The payment errors out with “Failed to retrieve a PaymentSheetResult”.

However, if you instead resume the app from the Android Task Switcher everything works as expected.

My manifest looks like:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
    android:launchMode="singleTask"
    android:windowSoftInputMode="adjustResize">
    
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="myapp" />
    </intent-filter>	
</activity>

I believe you’re right that changing the singleTask launch mode will fix but this breaks deep linking for our RN Android app.

Would there be another work around?

Read more comments on GitHub >

github_iconTop Results From Across the Web

Top-ul fails if I put Revolut app in background while accepting ...
Top-ul fails if I put Revolut app in background while accepting the 3D secure verification on my card bank application.
Read more >
Card authentication and 3D Secure | Stripe Documentation
For extra fraud protection, 3D Secure (3DS) requires customers to complete an additional verification step with the card issuer when paying.
Read more >
3D Secure mobile SDKs - Docs - Checkout.com
Our 3D Secure (3DS) mobile SDKs allow you to provide a native 3DS2 experience in your Android and iOS apps, with visual styling...
Read more >
Android: 3d-secure redirect response - Stack Overflow
We have experienced a similar issue with Nordea's 3D Secure page in an Android WebView. It came down to the page trying to...
Read more >
Android 3D Secure 2 SDK - Adyen Docs
How it works · Submit a payment request with the required 3D Secure 2 objects to start the authentication process. · If you...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found