条纹连接账户到银行转账的问题

时间:2017-02-01 05:29:13

标签: stripe-payments stripe-connect

我在转让时遇到了问题。

我的条纹连接账户可用bal是200.00美元,我有200.00美元的转账,并且我的银行账户余额为150.00美元。

显示条带连接帐户中的错误资金不足

看我的代码:

/imports

见输出:

\Stripe\Stripe::setApiKey($_REQUEST['secret_id']);

$transfer = \Stripe\Transfer::create(array(
    "amount" => 20000,
    "currency" => "usd",
    "destination" => "default_for_currency",
    "description" => $_REQUEST['description'],
    "source_type" => "bank_account"
));

我需要解决方案。

2 个答案:

答案 0 :(得分:4)

您的帐户实际上有多个余额 - 资金按付款来源类型拆分。

如果您发送balance retrieval请求,您将得到与此类似的结果:

{
  "available": [
    {
      "amount": 20000,
      "currency": "usd",
      "source_types": {
        "card": 12000,
        "bank_account": 8000
      }
    }
  ],
  "livemode": false,
  "object": "balance",
  "pending": [
    {
      "amount": 0,
      "currency": "usd",
      "source_types": {
        "card": 0,
        "bank_account": 0
      }
    }
  ]
}

当您create a transfer时,您应该通过source_type属性指定源类型。例如。在PHP中,你可以这样做:

\Stripe\Transfer::create(array(
  "amount" => 8000,
  "currency" => "usd",
  "destination" => "default_for_currency",
  "source_type" => "bank_account"
));

在不相关的说明中,您似乎是通过客户端参数设置API密钥:

\Stripe\Stripe::setApiKey($_REQUEST['secret_id']);

您永远不应与客户端代码共享秘密API密钥。攻击者很容易检索它并使用它代表您发出API请求。他们可以查看您的交易,删除已保存的客户等。

答案 1 :(得分:1)

当条带中的任何费用成功时,在条带帐户中实际可用它需要一些时间。

如果您想根据任何费用收取的金额创建转帐,则可以直接使用费用ID。 所以你的代码应该是:

\Stripe\Stripe::setApiKey("your_secret_key");

$transfer = \Stripe\Transfer::create(array(
  "amount" => 1000,
  "currency" => "usd",
  "source_transaction" => "{CHARGE_ID}",
  "destination" => "{CONNECTED_STRIPE_ACCOUNT_ID}",
));

通过使用source_transaction,无论您的可用余额如何,转移请求都会成功,转移本身只会在收费资金到位后才会发生。

记录在案here