首先,感谢您到目前为止对我的帮助。
我还有一个与条纹传输有关的问题。因此,我的范围是向客户收费,然后将一部分资金转移给一个关联的用户,并将另一部分钱转移给另一用户。我正在使用以下脚本:
$charge = \Stripe\Charge::create([
"amount" => $cost,
"currency" => "usd",
"customer" => $customerId,
"transfer_group" => $transferGroupToken
]);
// Create a Transfer to a connected account - Area Dev (later):
$transfer = \Stripe\Transfer::create([
"amount" => $costPercentage1,
"currency" => "usd",
"destination" => $userAccountId1,
"transfer_group" => $transferGroupToken
]);
// Create a second Transfer to another connected account - Guide (later):
$transfer = \Stripe\Transfer::create([
"amount" => $costPercentage2,
"currency" => "usd",
"destination" => $userAccountId2,
"transfer_group" => $transferGroupToken
]);
现在此代码有效,但是存在一个问题。
当我向客户收费时,这笔钱不会立即进入条带化帐户,但是转帐确实会立即发生,因此我需要在条带化帐户中拥有足够的资金,否则脚本无法给出“资金不足”错误,这完全导致感。
但是我更喜欢一个解决方案,我可以以某种方式安排转帐,并且在我收到原始付款(向客户收取的费用)时会发生,这样我将总是有足够的资金,因为我只转帐了收到的费用的一部分。
任何想法我该如何实现?
最后,问题是:
在Stripe Connect中,有什么方法可以安排转移费用在Stripe帐户中实际可用时进行?
预先感谢
答案 0 :(得分:2)
也许这可以对您有所帮助? https://stripe.com/docs/connect/charges-transfers#transfer-availability
所描述的基本上是一种方法,当资金进入您的帐户时,条带化并“安排”转移。这会自动创建传输组,这是可能的,因为在初始化时将其与费用ID链接。
$transfer = \Stripe\Transfer::create([
"amount" => 1000,
"currency" => "usd",
"source_transaction" => "{CHARGE_ID}",
"destination" => "{CONNECTED_STRIPE_ACCOUNT_ID}",
]);
使用此方法时,对流程的条纹描述: 使用此参数时:
转账金额不得超过原始收费金额
您可以使用相同的source_transaction创建多个转帐,只要转帐的总和不超过来源费用
转帐处于关联费用的待处理状态:如果费用中的资金在N天内可用,则目标Stripe帐户从转帐中收到的付款也将在N天内可用
Stripe自动为您创建一个transfer_group