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
相关产品推荐
相关产品推荐

