该方案是我们网站中有3个用户,Admin,Sender和Receiver。 发件人向Receiver发送付款,但在我们的网站上发件人不直接将付款发送给Receiver,该金额在管理条带帐户上保留,并在确认后Receiver从管理条带帐户> 收到付款 STRONG>。对于此过程,我从管理条带帐户创建了一个平台,现在Sender和Receiver都连接到该平台。
以下是我们使用的代码:
发件人向管理员帐户发送付款
\Stripe\Stripe::setApiKey("sk_test_ADMIN_KEY");
\Stripe\Charge::create(array(
"amount" => 400,
"currency" => "usd",
"source" => "tok_18uL5yIXv4Heg2KDdPHJFo8A", // obtained with Stripe.js
"description" => "Charge for abigail.white@example.com"
));
接收方从管理条带帐户接收付款
\Stripe\Stripe::setApiKey("sk_test_ADMIN_KEY.....");
\Stripe\Charge::create(array(
'amount' => 400,
'currency' => 'usd',
'source' => $token,
'destination' => 'acct_...' //
));
并且所有三个用户都拥有他们的条带帐户,并且在测试模式下,所有三个用户都拥有$ 0可用余额。使用上述代码后,并且金额未添加到Receiver Stripe帐户。
答案 0 :(得分:3)
代表第三方接受付款时,您无法在平台的帐户中持有资金("管理员")。出于合规性原因,您必须在创建费用时设置目标帐户。
\Stripe\Stripe::setApiKey("sk_test_..."); // platform's API key
\Stripe\Charge::create(array(
'amount' => 400,
'currency' => 'usd',
'source' => $token,
'destination' => 'acct_...' // connected account's ID
));
这将向客户收取费用(通过$token
中的付款方式),并将资金添加到关联帐户的余额中。资金到位后,可以将帐户转移到关联帐户的相关银行帐户。
请注意,因为此费用是通过平台创建的#34; (即使用destination
参数),平台将支付Stripe的费用并负责退款和退款(参见here)。由于没有application_fee
参数,该平台将有效地在此次交易中赔钱,因为它将支付Stripe的费用但不会收到任何费用。
如果您使用managed accounts,那么您(作为平台)也可以控制与相关银行帐户的转帐。您可以阅读有关此here的更多信息。
使用standalone accounts,平台无法控制银行转帐 - 相反,每个独立帐户的所有者都可以通过自己的帐户设置进行控制。