如何将Stripe付款与对应发票及Stripe Connect付款对象与相关收费关联?
Stripe付款(Payout)关联相关技术实现方法
一、关联Stripe Payout与对应Invoice
- 通过Payout的
transactions列表追溯
每个Payout对象包含transactions字段,其中类型为invoice.payment_succeeded的交易项,其source字段就是关联的Invoice ID。调用接口时需展开transactions字段获取完整列表,筛选后即可匹配到对应发票。
示例代码:import stripe stripe.api_key = "your_secret_key" payout = stripe.Payout.retrieve( "po_123456789", expand=["transactions"] ) for txn in payout.transactions: if txn.type == "invoice.payment_succeeded": invoice_id = txn.source invoice = stripe.Invoice.retrieve(invoice_id) print(f"Payout {payout.id}关联Invoice: {invoice.id}") - 通过Invoice的
charge字段反向关联
已支付的Invoice会有charge字段对应关联的Charge ID,而Charge对象的payout字段直接指向所属的Payout ID。通过这一链条可从发票反向找到对应的付款。
示例代码:invoice = stripe.Invoice.retrieve("in_123456789") if invoice.charge: charge = stripe.Charge.retrieve(invoice.charge) if charge.payout: payout = stripe.Payout.retrieve(charge.payout) print(f"Invoice {invoice.id}关联Payout: {payout.id}")
二、关联Stripe Connect Payout与涵盖的Charge
- 通过Connect Payout的
transactions列表提取Charge
Connect模式下的Payout同样包含transactions字段,类型为charge的交易项,其source就是对应的Charge ID。调用接口时需指定目标Connect账户的stripe_account参数。
示例代码:payout = stripe.Payout.retrieve( "po_987654321", expand=["transactions"], stripe_account="acct_123456789" ) for txn in payout.transactions: if txn.type == "charge": charge_id = txn.source charge = stripe.Charge.retrieve(charge_id, stripe_account="acct_123456789") print(f"Connect Payout {payout.id}关联Charge: {charge.id}") - 通过Charge的
payout字段反向查找Connect Payout
Connect账户下的Charge对象,其payout字段会关联到所属的Payout ID。直接查询Charge并指定stripe_account参数,即可获取对应的付款信息。
示例代码:charge = stripe.Charge.retrieve( "ch_123456789", stripe_account="acct_123456789" ) if charge.payout: payout = stripe.Payout.retrieve(charge.payout, stripe_account="acct_123456789") print(f"Charge {charge.id}关联Connect Payout: {payout.id}")
内容的提问来源于stack exchange,提问作者Sooraj Chandu
相关产品推荐
相关产品推荐

