flutter_stripe 5.0.0默认支付表单中Google Pay选项不显示问题
解决Flutter Stripe 5.0.0 PaymentSheet不显示Google Pay的问题
核心问题分析
你的代码里存在货币代码与商户国家代码不匹配的错误,这是导致Google Pay选项不显示的主要原因:
googlePay配置中,currencyCode: "DE"是错误的——DE是德国的国家代码,对应的货币代码应该是EUR;同时你设置的merchantCountryCode: 'US',对应的货币代码应该是USD,两者完全不匹配,Stripe会直接忽略这个无效的Google Pay配置。
修复步骤
修正Google Pay配置参数
确保merchantCountryCode和currencyCode对应匹配:- 如果面向美国地区用户:
merchantCountryCode: 'US'+currencyCode: 'USD' - 如果面向德国地区用户:
merchantCountryCode: 'DE'+currencyCode: 'EUR'
修正后的代码示例:
googlePay: const PaymentSheetGooglePay( merchantCountryCode: 'DE', testEnv: true, currencyCode: "EUR" // 修正为正确的货币代码 ),- 如果面向美国地区用户:
同步后端Payment Intent的货币
后端创建Payment Intent时使用的货币,必须和PaymentSheet中Google Pay配置的currencyCode完全一致,否则Google Pay选项也不会显示。验证测试环境卡片
测试环境下,确保设备已添加Stripe测试卡片(例如4242 4242 4242 4242,过期日期选未来月份,CVV任意3位),部分设备需要有有效卡片才会显示Google Pay选项。重新初始化PaymentSheet
修改配置后,务必重新调用initPaymentSheet,再执行presentPaymentSheet。
内容的提问来源于stack exchange,提问作者Mits Patel
相关产品推荐
相关产品推荐

