2014-10-31 3 views
1

Я пытаюсь восстановить свой баланс Stripe, используя API Stripe с PHP.Stripe API Balance

Я зову следующее:

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

Похоже, в ожидании представляет собой массив объектов, вы пробовали '$ balance-> в ожидании [0] -> amount' – Cory

ответ

2

Проблема в том, что pending не объект, а массив, поэтому PHP бросает эту ошибку. Ваш код должен быть что-то вроде этого:

$response = Stripe_Balance::retrieve(); 
foreach($response->pending as $pendingBalance) 
{ 
    echo "Pending balance of " . $pendingBalance->amount . " in " . $pendingBalance->currency . "<br>"; 
} 
0

Я подозреваю, что проблема в том, что вы используете функцию в качестве обертки к этому. Нет необходимости определять свою собственную функцию, единственной целью которой является вызов другой функции, и при этом в этом случае может возникнуть проблема. Первый шаг, который я хотел бы сделать, - удалить оболочку функции и просто использовать библиотеку Stripe напрямую.

Надежда, что помогает, Ларри

PS Я работаю по поддержке в Stripe.

2

Лучший способ

$balance = Stripe_Balance::retrieve(); 
$balanceArr = $balance->__toArray(true); 
$amount = $balanceArr['pending']['0']['amount'];