我在转让时遇到了问题。
我的条纹连接账户可用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"
));
我需要解决方案。
答案 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