Flutter中Stripe支付表单无法显示Google Pay按钮求助
Flutter集成Stripe Google Pay按钮不显示的常见排查点
以下是大概率导致Google Pay按钮不出现的几个常见问题及解决步骤:
设备与环境兼容性问题
- Google Pay仅支持Android 5.0(API 21)及以上设备,且设备需安装Google Pay应用并已绑定有效支付方式;iOS平台对应Apple Pay,不要混淆配置。
- 测试环境下,确保使用Stripe测试密钥,且测试设备满足Google Pay测试要求:模拟器需安装并更新Google Play服务,且登录Google账号;真机需添加Stripe测试卡片(如
4242 4242 4242 4242,有效期填未来任意日期,CVV任意3位)。 - 核对Stripe控制台中配置的允许应用ID,必须与你的Flutter应用包名完全一致(路径:Payment Methods > Google Pay)。
Flutter Stripe初始化与配置遗漏
- 初始化Stripe时,务必传入正确的
merchantId:测试环境可使用Stripe提供的测试商户ID,生产环境需使用Google Pay控制台获取的正式商户ID。 - 检查AndroidManifest.xml是否添加了Google Pay启用标记:
<meta-data android:name="com.google.android.gms.wallet.api.enabled" android:value="true" /> - 升级flutter_stripe到最新版本,旧版本可能存在兼容性bug:
flutter pub upgrade flutter_stripe
- 初始化Stripe时,务必传入正确的
PaymentSheet参数配置错误
- 创建PaymentSheet时,必须正确配置
googlePay参数,示例代码:final paymentSheet = await Stripe.instance.createPaymentSheet( paymentSheetParameters: SetupPaymentSheetParameters( merchantDisplayName: "你的商户名称", paymentIntentClientSecret: 你的支付Intent密钥, googlePay: const PaymentSheetGooglePay( testEnv: true, // 生产环境改为false currencyCode: "USD", // 适配你的业务货币 countryCode: "US", // 货币所属国家/地区代码 ), ), ); - 确认
currencyCode与countryCode为Google Pay支持的合法组合,比如使用CNY时countryCode需设为"CN",且需符合对应地区的支付政策。
- 创建PaymentSheet时,必须正确配置
依赖与权限检查
- 确认Android项目build.gradle中已引入Google Pay依赖(flutter_stripe通常会自动集成,若未生效可手动添加):
implementation 'com.google.android.gms:play-services-wallet:19.1.0' - 确保应用已声明INTERNET权限(默认会包含,但需确认未被误删)。
- 确认Android项目build.gradle中已引入Google Pay依赖(flutter_stripe通常会自动集成,若未生效可手动添加):
内容的提问来源于stack exchange,提问作者Keval
相关产品推荐
相关产品推荐

