退款时提示Payment Intent未找到:Stripe关联账户退款问题
解决Stripe关联账户退款的错误问题
问题根源
你创建的Payment Intent(PI)归属是平台主账户,只是通过on_behalf_of和transfer_data将资金流转到关联账户。退款时添加stripeAccount参数,等同于去关联账户的资源空间查找该PI,自然会提示找不到。
正确退款方式
直接在平台主账户下发起退款,不需要传入stripeAccount参数。如果需要让关联账户承担退款资金(即从关联账户扣除退款金额),可根据业务场景添加对应参数:
1. 基础退款(自动从关联账户扣除资金)
由于创建PI时使用了on_behalf_of,默认退款会从关联账户的可用余额中扣除,直接调用以下代码即可:
const refund = await stripe.refunds.create({ payment_intent: validPaymentIntentId, amount: validAmount, });
2. 反转之前的转账(收回已转到关联账户的资金)
如果之前的PI已经完成transfer_data的转账,想要把这笔转账反转回来,添加reverse_transfer: true参数:
const refund = await stripe.refunds.create({ payment_intent: validPaymentIntentId, amount: validAmount, reverse_transfer: true, });
3. 退还申请费(若收取了关联账户的申请费)
如果创建PI时收取了申请费,想要将这部分费用退还关联账户,添加refund_application_fee: true参数:
const refund = await stripe.refunds.create({ payment_intent: validPaymentIntentId, amount: validAmount, refund_application_fee: true, });
验证逻辑
- 退款发起后,可在平台主账户的Stripe控制台查看退款记录,关联账户的余额会对应减少(或转账被反转)。
- 若需确认关联账户的资金变动,可切换到关联账户的控制台视图查看余额明细。
内容的提问来源于stack exchange,提问作者1baz
相关产品推荐
相关产品推荐

