You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
On the card number field of the Stripe PaymentSheet, the text cursor only appears if the user taps at the very top of the input area. Taps in the middle or bottom of the field do not focus the input, so the user cannot start typing the card number unless they tap very precisely near the top edge.
Environment / Integration details
Integration type: Stripe Mobile SDK – Flutter
Flutter package: flutter_stripe version ^12.2.0
Native Android SDK: Stripe Android SDK 12.2.0 (via stripe_android plugin)
Platform: Android (PaymentSheet in a Flutter app)
PaymentSheet is initialized via: Stripe.instance.initPaymentSheet(...)
PaymentSheet is presented via: Stripe.instance.presentPaymentSheet()
Observed behaviour
The issue occurs specifically with the card number input field within the PaymentSheet on Android.
Other fields (expiry, CVC) appear to work correctly; the tap-to-focus problem is mainly on the card number field.
Users often need to tap multiple times or aim at the very top edge of the card number field to get the cursor and keyboard to appear.
This behaves like a UI / touch target issue inside the native Stripe PaymentSheet component on Android.
Expected behaviour
Tapping anywhere within the visible card number field should focus the input and show the cursor so the user can start typing.
The touch target for the card number field should cover the full height of the input, not only the top portion.
Steps to reproduce
Initialize PaymentSheet with a valid payment intent client secret.
Call Stripe.instance.presentPaymentSheet() on an Android device.
When the PaymentSheet appears, tap on the card number field in the middle or bottom area.
Observe that these taps do not focus the input and the cursor does not appear.
Tap again, this time near the very top of the card number field.
Observe that the input now receives focus and the cursor/keyboard appear as expected.
Describe the bug
On the card number field of the Stripe PaymentSheet, the text cursor only appears if the user taps at the very top of the input area. Taps in the middle or bottom of the field do not focus the input, so the user cannot start typing the card number unless they tap very precisely near the top edge.
Environment / Integration details
Integration type: Stripe Mobile SDK – Flutter
Flutter package: flutter_stripe version ^12.2.0
Native Android SDK: Stripe Android SDK 12.2.0 (via stripe_android plugin)
Platform: Android (PaymentSheet in a Flutter app)
File structure:
Payment logic: lib/layers/data/services/stripe_service.dart
Stripe initialization: main.dart (publishable key and merchant identifier)
PaymentSheet configuration
screen-capture.webm
dart
SetupPaymentSheetParameters(
paymentIntentClientSecret: clientSecret,
merchantDisplayName: merchantDisplayName,
allowsDelayedPaymentMethods: true,
applePay: PaymentSheetApplePay(
merchantCountryCode: countryCode,
),
googlePay: PaymentSheetGooglePay(
merchantCountryCode: countryCode,
currencyCode: currencyCode.toUpperCase(),
testEnv: isTestEnv,
),
)
PaymentSheet is initialized via: Stripe.instance.initPaymentSheet(...)
PaymentSheet is presented via: Stripe.instance.presentPaymentSheet()
Observed behaviour
The issue occurs specifically with the card number input field within the PaymentSheet on Android.
Other fields (expiry, CVC) appear to work correctly; the tap-to-focus problem is mainly on the card number field.
Users often need to tap multiple times or aim at the very top edge of the card number field to get the cursor and keyboard to appear.
This behaves like a UI / touch target issue inside the native Stripe PaymentSheet component on Android.
Expected behaviour
Tapping anywhere within the visible card number field should focus the input and show the cursor so the user can start typing.
The touch target for the card number field should cover the full height of the input, not only the top portion.
Steps to reproduce
Initialize PaymentSheet with a valid payment intent client secret.
Call Stripe.instance.presentPaymentSheet() on an Android device.
When the PaymentSheet appears, tap on the card number field in the middle or bottom area.
Observe that these taps do not focus the input and the cursor does not appear.
Tap again, this time near the very top of the card number field.
Observe that the input now receives focus and the cursor/keyboard appear as expected.