2017-02-17 18 views
-3

Как получить доступ к значениям в возвращаемом объекте square api.Доступ к объектам в массиве с другими объектами и их значениями.Squareup возвращен Object api

обычно я хотел бы сделать: $ результат держит массив объектов

echo $result->id; 

, но это, кажется, не работает:

Объект Возвращается При использовании print_r()

SquareConnect\Model\ChargeResponse Object 
(
    [errors:protected] => 
    [transaction:protected] => SquareConnect\Model\Transaction Object 
     (
      [id:protected] => 1111111-15f3-5b37-6940-ceac7a6b54b8 //modified for stackoverflow 
      [location_id:protected] => 111111111111111111111111111111 //modified 
      [created_at:protected] => 2017-02-17T22:48:15Z 
      [tenders:protected] => Array 
       (
        [0] => SquareConnect\Model\Tender Object 
         (
          [id:protected] => 111111-3e5f-1111111-710c-4a4f11111d7be //modified for stack overflow 
          [location_id:protected] => 111111Nz8yXzf7rZHFYx0mbIKEgAQ //modified for stack overflow 
          [transaction_id:protected] => 111111111-15f3-5b37-6940-11111 //modified for stack overflow 
          [created_at:protected] => 2017-02-17T22:48:15Z 
          [note:protected] => Online Transaction 
          [amount_money:protected] => SquareConnect\Model\Money Object 
           (
            [amount:protected] => 402 
            [currency:protected] => USD 
           ) 

          [processing_fee_money:protected] => 
          [customer_id:protected] => 
          [type:protected] => CARD 
          [card_details:protected] => SquareConnect\Model\TenderCardDetails Object 
           (
            [status:protected] => CAPTURED 
            [card:protected] => SquareConnect\Model\Card Object 
             (
              [id:protected] => 
              [card_brand:protected] => VISA 
              [last_4:protected] => 5858 
              [exp_month:protected] => 
              [exp_year:protected] => 
              [cardholder_name:protected] => 
              [billing_address:protected] => 
             ) 

            [entry_method:protected] => KEYED 
           ) 

          [cash_details:protected] => 
         ) 

       ) 

      [refunds:protected] => 
      [reference_id:protected] => 
      [product:protected] => EXTERNAL_API 
      [client_id:protected] => 
      [order:protected] => 
      [shipping_address:protected] => 
     ) 

) 

При использовании печати ($ result);

{ 
    "transaction": { 
     "id": "9b2f3df1-cdf3-5399-6c54-07a67af8d8f2", 
     "location_id": "CBASEGjNz8yXzf7rZHFYx0mbIKEgAQ", 
     "created_at": "2017-02-17T23:37:28Z", 
     "tenders": [ 
      { 
       "id": "c424e20e-dac0-5144-518a-114fe24cb2e5", 
       "location_id": "CBASEGjNz8yXzf7rZHFYx0mbIKEgAQ", 
       "transaction_id": "9b2f3df1-cdf3-5399-6c54-07a67af8d8f2", 
       "created_at": "2017-02-17T23:37:28Z", 
       "note": "Online Transaction", 
       "amount_money": { 
        "amount": 402, 
        "currency": "USD" 
       }, 
       "type": "CARD", 
       "card_details": { 
        "status": "CAPTURED", 
        "card": { 
         "card_brand": "VISA", 
         "last_4": "5858" 
        }, 
        "entry_method": "KEYED" 
       } 
      } 
     ], 
     "product": "EXTERNAL_API" 
    } 
} 

Как я могу идти о доступе различных массивов и объектов в пределах квадрата до апи, так что я могу использовать эту информацию. Поэтому, чтобы сохранить ответ коротким, как мне получить доступ к id или идентификатору транзакции объекта в объекте Tenders?

+0

начало здесь. https://docs.connect.squareup.com/ – Augwa

+0

@Augwa уже был на сайте разработчика. Я получил весь код, который мне нужен, чтобы зарядить карту, но вся документация говорит о том, что она вернет массив, но не содержит примеров кода о том, как читать массив, который вставлен выше. Отсюда и вопрос выше. – DEVPROCB

+1

https://github.com/square/connect-php-sdk/blob/master/docs/Api/TransactionApi.md#charge – Augwa

ответ

0

Api не говорил о доступе к возвращаемым значениям, поэтому я сделал несколько проб и ошибок. наконец, выяснили, что это было многоуровневое, так что что-то вроде: $result['transaction']['tenders'][0]['type'] позволило мне получить доступ к значениям возвращаемого массива.