使用条带中的客户卡ID在多个目标帐户中发送付款

时间:2017-06-27 13:13:51

标签: laravel stripe-payments stripe-connect

  Stripe::setApiKey("sk_test_j26LHmQkliAum0N5KRNG9gVG");

  $token = Stripe::tokens()->create([
    'card' => [
      'number'    => '4242424242424242',
      'exp_month' => '11',
      'cvc'       => '123',
      'exp_year'  => '2021',
    ],
  ]);
  $charge = \Stripe::charges()->create([
    "amount" => 10,
    "currency" => "usd",
    "source" => $token['id'],
    "destination" => array(
    "amount" => 8,
    "account" => "acct_19xa8WLv4n7LNSRg",
  ),
  ]);
  $transfer = Stripe::transfers()->create([
    "amount" => 8,
    "currency" => "usd",
    "source_transaction" => $charge['id'],
    "destination" => "acct_19xa8WLv4n7LNSRg",
  ]);

我们需要在两个目标帐户中发送付款,但是它会在setApiKey帐户中发送所有付款。

1 个答案:

答案 0 :(得分:3)

首先,您永远不应该创建卡令牌服务器端。这意味着您获得了服务器上的卡号,这些卡号会产生严重的PCI compliance影响。

您应该使用ElementsStripe Checkout客户端直接将卡详细信息发送给Stripe并获取一个唯一的卡令牌(tok_XXX),然后您将其安全地发送到您的服务器创造充电。

至于错误,您的代码在此处传输金额两次。首先,您创建0.10美元的费用并自动将0.08美元转移到关联的帐户,然后再次以0.08美元的价格创建一个新的转帐到同一帐户。

由于您无法转移超过原始费用金额,因此在这种情况下,它会将全部0.10美元转帐到关联帐户。

您需要在此处更正多项内容: *你应该以美分计算金额。要收取10美元的费用,您将通过amount: 1000。 *如果您要将资金发送到其他帐户,您希望在转移创建中传递其他帐户ID 。 *如果您要将资金转移到多个帐户,您希望在没有destination的情况下在平台上创建费用。而是使用transfer_group作为记录here

您可能希望直接与Stripe的支持小组讨论后续问题,因为这更多是关于他们的产品而不是代码。