我正在尝试使用带有PHP的Stripe API检索我的Stripe余额。
我打电话给以下人员:
function retrieve_balance()
{
$response = Stripe_Balance::retrieve();
return $response;
}
返回如下内容:
object(Stripe_Balance)#28 (5) {
["_apiKey":protected]=>
string(32) "my_key_here"
["_values":protected]=>
array(4) {
["pending"]=>
array(1) {
[0]=>
object(Stripe_Object)#32 (5) {
["_apiKey":protected]=>
string(32) "my_key_here"
["_values":protected]=>
array(2) {
["amount"]=>
int(0)
["currency"]=>
string(3) "usd"
etc...
我已尝试执行以下操作,但只会导致错误。我试图获得待处理和可用的金额。
<?php
var_dump($balance);
/*Issue Line Below*/
echo $balance->pending->amount;
?>
我得到的错误是:Trying to get property of non-object
答案 0 :(得分:2)
这里的问题是pending
不是一个对象,而是一个数组,这就是PHP抛出该错误的原因。你的代码应该是这样的:
$response = Stripe_Balance::retrieve();
foreach($response->pending as $pendingBalance)
{
echo "Pending balance of " . $pendingBalance->amount . " in " . $pendingBalance->currency . "<br>";
}
答案 1 :(得分:2)
更好的方法
$balance = Stripe_Balance::retrieve();
$balanceArr = $balance->__toArray(true);
$amount = $balanceArr['pending']['0']['amount'];
答案 2 :(得分:0)
我怀疑问题是因为你正在使用一个函数作为它的包装器。实际上没有必要定义自己的函数,其唯一目的是调用另一个函数,在这种情况下这样做可能会导致问题。我要采取的第一步是删除函数包装器,直接使用Stripe库。
希望有所帮助, 拉里
PS我在Stripe的支持工作。
答案 3 :(得分:0)
对于被问到这个问题几年后到达这里的任何人,这是使用PHP reset function的另一个示例:
$balance = Stripe_Balance::retrieve();
$amount = reset($balance->pending)->amount;