如何通过Stripe API根据支付意向ID获取争议对象?
如何通过支付意向ID获取Stripe争议对象
已知支付意向ID时,有两种直接获取对应争议对象的方法:
方法1:从支付意向对象中关联获取
Stripe的PaymentIntent对象内置了dispute字段,若该支付存在争议,这个字段会指向对应的争议资源。你可以在检索支付意向时,通过expand参数直接拉取完整的争议对象详情:
// 检索支付意向并扩展争议对象 const paymentIntent = await stripe.paymentIntents.retrieve( 'pi_1MEF03LLBOhef2QNxxxxxx', // 替换为你的支付意向ID { expand: ['dispute'] } ); // 检查并获取争议对象 if (paymentIntent.dispute) { const dispute = paymentIntent.dispute; // 这里可以处理争议数据,比如查看状态、原因等 console.log(dispute); }
如果不需要完整的争议对象,也可以只获取争议ID(paymentIntent.dispute.id),再用你原本熟悉的disputes.retrieve方法单独拉取详情。
方法2:通过争议列表接口筛选
直接调用争议列表接口,用payment_intent参数过滤出对应支付意向的争议:
// 按支付意向ID筛选争议 const disputes = await stripe.disputes.list({ payment_intent: 'pi_1MEF03LLBOhef2QNxxxxxx', // 替换为你的支付意向ID limit: 1 // 单个支付意向通常最多对应一个争议,限制返回1条结果即可 }); // 提取争议对象 if (disputes.data.length > 0) { const dispute = disputes.data[0]; console.log(dispute); }
后台查找争议ID的方式
登录Stripe后台后,有两种路径找到争议ID:
- 进入「支付」→「争议」页面,在列表中通过支付意向ID搜索对应记录,点击进入详情页即可看到争议ID(格式为
dp_xxxxxx); - 直接搜索支付意向ID进入支付详情页,切换到「争议」标签页,就能看到关联的争议记录及对应的ID。
内容的提问来源于stack exchange,提问作者Dashiell Rose Bark-Huss
相关产品推荐
相关产品推荐

