基于Stripe Connect API搭建电商平台,如何实现收货后结算卖家资金?
Stripe Connect API支持延迟结算方案的实现
完全支持你需求的“买家确认收货后再结算资金给卖家”的功能,核心是结合手动触发转账+Stripe Connect的应用费抽成机制,以下是具体落地步骤:
核心逻辑
买家付款完成后,平台的应用费会直接到账,卖家应得的资金暂存于Stripe托管账户;待买家确认收货后,由平台手动触发转账,将资金打给卖家。
具体实现步骤
1. 处理买家付款,锁定资金并提取平台应用费
当买家完成下单付款操作时,创建并捕获PaymentIntent,同时指定平台的应用费金额,此时资金会进入Stripe托管,平台抽成直接到账,卖家资金暂不划转:
# 创建Payment Intent payment_intent = stripe.PaymentIntent.create( amount=1000, # 订单总金额(单位:最小货币单位,如美元分) currency='usd', payment_method_types=['card'], application_fee_amount=100, # 平台抽成金额(10美元) transfer_group='order_123' # 关联订单ID,用于后续转账关联 ) # 捕获付款(若设置了手动捕获模式则执行此步骤) payment_intent = stripe.PaymentIntent.capture(payment_intent.id)
2. 买家确认收货后,手动触发转账给卖家
当用户确认收货的事件触发后,调用Stripe Transfer API,将卖家应得的资金(总金额-平台抽成-Stripe手续费)转入其Connect账户:
# 计算卖家实际到账金额:总金额 - 平台抽成 - Stripe交易手续费 # 示例中Stripe手续费按2.9%+0.3美元计算,实际以Stripe实时费率为准 seller_amount = 1000 - 100 - 29 - 30 # 841分(8.41美元) # 发起转账 stripe.Transfer.create( amount=seller_amount, currency='usd', destination='acct_XXXXXX', # 卖家的Stripe Connect账户ID transfer_group='order_123' # 关联同一订单ID,便于资金流追踪 )
关键注意事项
- 卖家的Stripe Connect账户必须完成身份验证,否则无法接收转账资金。
- 若买家发起退款,需先处理Payment Intent的退款操作,再根据转账状态调整:若资金尚未转给卖家,直接从托管中扣除;若已转账,可通过Stripe的反向转账功能从卖家账户扣回对应金额。
- 可通过Stripe Dashboard的Connect板块,实时查看订单资金的托管状态、转账记录及手续费明细。
内容的提问来源于stack exchange,提问作者user23771728
相关产品推荐
相关产品推荐

