Stripe API Balance

时间:2014-10-31 22:09:04

标签: php stripe-payments

我正在尝试使用带有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

4 个答案:

答案 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;