You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中pay包实现Google Pay真机Debug不显示问题排查及测试

Flutter Google Pay 真机不显示按钮问题排查方案

一、可能的原因

  • Google Play Services版本不足:Google Pay依赖最新版Google Play Services,真机版本过低会导致按钮无法加载
  • 设备/账号区域不匹配:设备系统区域需设置为Google Pay支持的地区(如美国、英国),且需登录对应地区的Google账号
  • 支付配置参数错误:testEnv未设为true、countryCode/currencyCode与设备区域不匹配,或网关配置不符合测试要求
  • 未安装Google Pay应用:部分设备需单独安装Google Pay应用才能触发按钮显示
  • Release模式签名问题:Release包的签名SHA-1未添加到Google Pay开发者控制台,导致验证失败

二、测试方法

  • 检查Google Play Services版本:进入设备「设置-应用-Google Play Services」查看版本,若过低则更新至最新版
  • 验证区域与账号:将设备系统区域切换至支持的地区(如美国),登录对应地区的Google账号,并确保账号已绑定测试卡
  • 核对配置代码:确认testEnv设为true,countryCode、currencyCode与设备区域一致,测试网关参数正确
  • 多模式测试:先在真机Debug模式下测试,排除Release签名问题;若为Release模式,检查签名证书的SHA-1是否已添加到Google Pay控制台
  • 查看日志:通过adb logcat | grep GooglePay过滤日志,查找按钮不显示的具体错误信息

三、Google Pay测试卡获取途径

Google官方提供了专用测试卡,无需真实银行卡,添加到Google Pay账号即可用于测试,常用卡片信息:

  • 卡号:4111 1111 1111 1111,有效期:任意未来日期,CVV:123
  • 卡号:4242 4242 4242 4242,有效期:任意未来日期,CVV:123
  • 卡号:4000 0566 5566 5556,有效期:任意未来日期,CVV:123

四、核心配置代码示例

import 'package:pay/pay.dart';

// 支付商品信息
const _paymentItems = [
  PaymentItem(
    label: '订单总额',
    amount: '10.00',
    status: PaymentItemStatus.final_price,
  )
];

// Google Pay 测试配置
final _googlePayTestConfig = {
  'provider': 'google_pay',
  'data': {
    'apiVersion': 2,
    'apiVersionMinor': 0,
    'allowedPaymentMethods': [
      {
        'type': 'CARD',
        'parameters': {
          'allowedAuthMethods': ['PAN_ONLY', 'CRYPTOGRAM_3DS'],
          'allowedCardNetworks': ['MASTERCARD', 'VISA'],
        },
        'tokenizationSpecification': {
          'type': 'PAYMENT_GATEWAY',
          'parameters': {
            'gateway': 'example', // 测试网关标识,实际替换为你的支付网关
            'gatewayMerchantId': 'test_merchant_id', // 测试商户ID
          },
        },
      }
    ],
    'merchantInfo': {
      'merchantId': '12345678901234567890', // 测试商户ID,可从Google Pay控制台获取
      'merchantName': '测试商户',
    },
    'transactionInfo': {
      'totalPriceStatus': 'FINAL',
      'totalPrice': '10.00',
      'currencyCode': 'USD', // 需与设备区域匹配
      'countryCode': 'US', // 需与设备区域匹配
    },
    'testEnv': true, // 必须开启测试环境,否则真机测试不显示按钮
  }
};

class GooglePayButton extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return PayButton(
      paymentConfiguration: PaymentConfiguration.fromJsonString(_googlePayTestConfig),
      paymentItems: _paymentItems,
      onPaymentResult: (Map<String, dynamic> result) {
        // 处理支付回调结果
        print('支付结果:$result');
      },
      width: double.infinity,
      height: 50,
      style: PayButtonStyle.gold,
      type: PayButtonType.pay,
    );
  }
}

内容的提问来源于stack exchange,提问作者kushal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:33:17