条纹将付款发送到平台内的已连接帐户

时间:2017-01-11 11:07:12

标签: php stripe-payments stripe-connect

该方案是我们网站中有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帐户。

1 个答案:

答案 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,平台无法控制银行转帐 - 相反,每个独立帐户的所有者都可以通过自己的帐户设置进行控制。