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

Stripe PaymentIntent确认相关:返回结果、成功校验与失败处理

Stripe PaymentIntents 支付确认相关问题解答

1. 支付确认失败时,PaymentIntents会返回什么内容?

支付确认失败时,Stripe SDK会抛出错误对象,核心信息包括:

  • type:错误分类(如card_error表示卡相关错误、invalid_request_error表示请求参数错误)
  • code:具体错误码(如insufficient_funds余额不足、card_declined卡片被拒)
  • message:可读性强的错误描述文本
  • payment_intent:关联的PaymentIntent对象,其status字段会显示为requires_payment_method、requires_confirmation等非成功状态,不会是succeeded

2. 如何校验支付确认是否已成功扣费?

直接查看返回的payment_intent对象的status字段:

  • 当status为succeeded时,说明已成功完成扣费
  • 可额外校验payment_intent.charges.data数组,其中的Charge记录status也会是succeeded,同时包含扣费的详细信息(如金额、支付方式等)

3. 支付确认失败时,会抛出错误还是返回失败标识?

会直接抛出错误,而非返回带失败标识的正常对象。
因为你代码中使用了confirm: true参数,当支付确认流程失败时,Stripe的Node.js SDK会触发异常,必须通过try/catch块捕获并处理错误。

修正后的代码示例(含错误处理)

try {
  const payment_intent = await stripe.paymentIntents.create({
    customer: customer_id,
    payment_method: pm_id,
    amount: 1000,
    currency: "usd",
    confirm: true,
    off_session: true,
  });

  // 校验支付是否成功
  if (payment_intent.status === 'succeeded') {
    console.log('支付已成功扣费');
  }
} catch (error) {
  console.error('支付确认失败:', error.code, error.message);
  // 可从错误对象中获取关联的PaymentIntent
  if (error.payment_intent) {
    console.log('当前PaymentIntent状态:', error.payment_intent.status);
  }
}

内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:47:59