You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Stripe中实现全额收款后分期转账至关联账户且无额外费用?

Stripe实现先收全额再分期转关联账户的方案

我来帮你梳理这个需求的具体实现步骤,核心是分开处理「收款到平台账户」和「分期转账到关联账户」两个环节,而且完全可以做到无额外费用:

1. 先把客户全额款项收至你的平台主账户

默认情况下,如果你创建Payment Intent时不指定transfer_data参数,客户支付的全额款项会直接进入你的Stripe平台主账户,不会自动划转至关联账户。这样就完成了第一步的资金归集。

举个Node.js的代码示例:

const stripe = require('stripe')('你的平台API密钥');

// 创建Payment Intent,仅收款到平台账户
const paymentIntent = await stripe.paymentIntents.create({
  amount: 10000, // 单位:分,这里是100美元
  currency: 'usd',
  payment_method_types: ['card'],
  // 不要添加transfer_data字段,避免直接转至关联账户
});

2. 分期转账至关联账户

资金到账后(确保Payment Intent的statussucceeded),你可以通过两种方式实现分期转账:

方式一:手动发起定期转账

每次到了约定的转账日期,调用Stripe的Transfer API,将对应金额转到关联账户。这种方式适合需要手动确认或灵活调整的场景。

代码示例:

// 发起一笔转账到关联账户
const transfer = await stripe.transfers.create({
  amount: 2000, // 每次转20美元(2000分)
  currency: 'usd',
  destination: 'acct_XXXXXXXXX', // 你的关联账户ID
  metadata: {
    installment: '1/5', // 标记是第1期,共5期
    order_id: 'ORD-12345' // 关联订单ID,方便对账
  }
});

方式二:设置自动转账计划(Scheduled Transfers)

如果分期规则固定(比如每月转一次,共5期),可以创建一个自动转账计划,让Stripe自动按约定时间执行转账,无需手动操作。

代码示例:

// 创建自动转账计划,30天后开始,每月转一次,共5期
const transferSchedule = await stripe.transferSchedules.create({
  amount: 2000,
  currency: 'usd',
  destination: 'acct_XXXXXXXXX',
  interval: 'month', // 转账频率:每月
  interval_count: 1,
  start_date: Math.floor(Date.now() / 1000) + 2592000, // 30天后开始(2592000秒)
  end_behavior: 'cancel', // 转完指定期数后取消计划
  iterations: 5 // 总共转5期
});

3. 确保无额外费用

这里要明确:Stripe Connect中,从平台主账户到关联账户的内部转账是免费的,不会产生额外手续费。只有当关联账户将资金提现到自己的银行账户时,才会收取提现费用(这是关联账户的成本,与你的平台操作无关)。

额外注意事项

  • 务必监听Payment Intent的succeeded webhook事件,确保资金到账后再发起转账或创建转账计划,避免余额不足的问题。
  • 如果需要调整分期计划,可以随时通过API修改或取消已创建的Transfer Schedule。
  • 利用metadata字段记录每笔转账的分期信息,方便后续对账和查询。

内容的提问来源于stack exchange,提问作者Ahmed Essa

火山引擎 最新活动