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

Stripe SetupIntent确认后PaymentIntent仍需确认问题咨询

问题解答

1. 已确认的SetupIntent仍触发验证的原因

你使用的测试卡4000 0000 0000 3220是Stripe专门用来模拟离线支付需额外验证的测试卡——哪怕你已经完成了SetupIntent的用户验证流程,发起离线支付时,这条卡会强制触发Stripe的预设验证规则,要求再次验证,这是测试环境的刻意模拟行为,并非生产环境的常规情况。

另外可以检查两个配置细节:

  • 确保创建PaymentIntent时明确设置了off_session: true,不要只在SetupIntent中配置;
  • 确认automatic_payment_methods是否添加了allow_redirects: 'never',如果未开启该配置,Stripe可能默认允许跳转验证,进而触发use_stripe_sdk类型的下一步动作。

2. 该测试卡能否用于离线支付?

这张卡本身就是用来模拟离线支付验证失败/需额外验证的场景,无法直接完成无验证的离线支付。如果要测试成功的离线支付,建议换用以下测试卡:

  • 4242 4242 4242 4242:通用测试卡,满足配置条件的情况下,大部分场景可通过离线支付;
  • 4000 0000 0000 3063:专门用于模拟无需额外验证的离线支付成功场景。

3. 后端如何处理use_stripe_sdk类型的next_action?

use_stripe_sdk类型的动作必须由前端Stripe SDK处理,后端无法直接完成验证流程,具体处理逻辑如下:

  1. 后端收到PaymentIntent返回的requires_action状态及next_action数据后,将paymentIntent.client_secret传递给前端;
  2. 前端调用Stripe SDK的stripe.handleNextAction({ clientSecret: clientSecret })方法,引导用户完成验证(如3DS验证);
  3. 验证完成后,Stripe会自动更新PaymentIntent的状态,后端可通过webhook监听最终的支付结果。

如果是纯离线支付场景(无法联系用户完成验证),这种情况下你需要换用无需验证的支付方式,或者在发起支付前通过Stripe API预校验卡片是否支持离线扣款。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:32:14