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

如何在Stripe的Payment Request中用Apple Pay和Google Pay进行负面测试?

在Stripe Payment Request中测试Apple Pay/Google Pay的负面场景

你遇到的核心问题是:Apple Pay和Google Pay依赖钱包内的卡片,无法直接像普通输入框那样填写测试卡号,需要利用Stripe测试环境的专属模拟方式来触发拒付场景,具体步骤如下:

前置条件

确保你的集成全程使用Stripe测试密钥(公钥以pk_test_开头,私钥以sk_test_开头),只有测试模式下才能触发测试卡的拒付逻辑。


Apple Pay测试步骤

  1. 使用Safari浏览器(Apple Pay仅支持Safari环境)打开你的测试页面
  2. 触发Apple Pay支付弹窗后,在测试模式下,Stripe会自动提供「Test Card」选项(无需添加真实Apple Pay卡片)
  3. 选择该选项后,输入目标测试卡号:
    • 通用拒付:4000000000000002
    • 挂失卡拒付:4000000000009987
  4. 有效期填写未来任意年份(比如12/30),CVV随便输入3位数字,完成支付流程
  5. Stripe会返回对应的支付失败结果,你可以在代码中捕获payment_intent.payment_failed事件获取具体错误信息

Google Pay测试步骤

  1. 使用Chrome浏览器打开测试页面
  2. 先在Chrome中添加测试卡片:
    • 打开Chrome设置 → 支付方式 → 添加卡片
    • 输入目标测试卡号,有效期填未来年份(如12/30),CVV随便输3位,完成添加
  3. 触发Google Pay支付弹窗,选择刚才添加的测试卡片
  4. 完成支付流程后,Stripe会触发对应的拒付逻辑,你可以在支付确认的回调中捕获错误

代码补充:错误捕获逻辑

你需要在Payment Request的paymentmethod事件中正确处理支付失败的情况,示例代码如下:

// 假设你已经初始化了paymentRequest
paymentRequest.on('paymentmethod', async (event) => {
  try {
    // 确认PaymentIntent
    const { paymentIntent } = await stripe.confirmPaymentIntent({
      payment_method: event.paymentMethod.id,
      confirm: true,
      return_url: 'https://your-domain.com/return'
    });

    // 支付成功逻辑
    event.complete('success');
    console.log('支付成功:', paymentIntent.id);
  } catch (error) {
    // 捕获拒付等错误
    console.error('支付失败:', error.message);
    // 通知Payment Request流程失败
    event.complete('fail');
  }
});

关键说明

Stripe测试卡的行为在Wallet支付(Apple/Google Pay)中与普通卡片输入完全一致,只要在测试模式下使用指定卡号,就能触发对应的负面场景,无需额外配置你的Payment Request初始化代码(你当前的代码逻辑没问题,只需确保用测试密钥)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:40:28