Google Pay not showing in Stripe Payment Sheet on Android despite isPlatformPaySupported returning true #2201
Replies: 4 comments
-
|
@ashwinpinetco are you located in India? Google pay is not supported there so this is intended behavior in that case. You can test google pay through a simulator with vpn |
Beta Was this translation helpful? Give feedback.
-
@remonh87 |
Beta Was this translation helpful? Give feedback.
-
|
You also need to have a google account that is not linked to India and have a valid credit card (not a test card) that is linked to the payment profile of this account. |
Beta Was this translation helpful? Give feedback.
-
|
isPlatformPaySupported only suggest that in stripe Google Pay is configured but does not say anything of your local payment requirements for google pay |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I am trying to integrate Google Pay using flutter_stripe in my Flutter app on Android. I am using the PaymentSheet flow, and everything else works fine, except that Google Pay option does not appear in the sheet, even though:
Google Pay is installed on my device
A valid test card is added
Stripe.instance.isPlatformPaySupported() returns true
The device is a physical Android phone
Here’s a simplified version of my implementation:
Stripe Initialization:
Future stripeInit() async {
Stripe.publishableKey = "";
Stripe.merchantIdentifier = "merchant.com.example.app"; // REPLACED
Stripe.urlScheme = "example";
await Stripe.instance.applySettings();
}
Google Pay Availability Check:
Future checkGPayAvailability() async {
final isAvailable = await Stripe.instance.isPlatformPaySupported(
googlePay: const IsGooglePaySupportedParams(
testEnv: true,
supportsTapToPay: true,
),
);
debugPrint("Is Google Pay available: $isAvailable"); // always returns true
}
Payment Intent Creation:
final response = await http.post(
Uri.parse('https://api.stripe.com/v1/payment_intents'),
headers: {
'Authorization': 'Bearer ',
'Content-Type': 'application/x-www-form-urlencoded',
},
body: {
'amount': '1000',
'currency': 'EUR',
'payment_method_types[]': 'card', // Google Pay is included under 'card'
},
);
Payment Sheet Initialization:
await Stripe.instance.initPaymentSheet(
paymentSheetParameters: SetupPaymentSheetParameters(
merchantDisplayName: "Example App",
paymentIntentClientSecret: clientSecret,
returnURL: 'example://stripe-redirect',
googlePay: PaymentSheetGooglePay(
merchantCountryCode: "US",
currencyCode: "EUR",
testEnv: true,
buttonType: PlatformButtonType.buy,
),
applePay: PaymentSheetApplePay(merchantCountryCode: "US"),
),
);
✅ Expected Behavior:
Google Pay should be shown as a payment option on Android in the PaymentSheet.
❌ Actual Behavior:
The PaymentSheet opens but does not display Google Pay as a payment option.
isPlatformPaySupported() returns true.
No errors or logs indicate any failure.
Device Info:
Device: Physical Android device
Google Pay: Installed, with test card set up
Stripe SDK: flutter_stripe: ^x.y.z (I’m using latest as of writing)
Flutter: [Paste output of flutter doctor -v here if needed]
Additional Notes:
I've ensured the country and currency values match for GPay.
The merchant ID is configured properly in the GPay console.
GPay is available in the region.
❓Question:
Is there anything missing in the initPaymentSheet or in the Stripe dashboard / GPay config that may cause Google Pay to be silently ignored?
Let me know if you need a full reproducible sample repo — happy to provide one.
Thanks in advance for the support!
Beta Was this translation helpful? Give feedback.
All reactions