Получение значений из многомерного массива Paypal payment-intent

#php #arrays #multidimensional-array #paypal

#php #массивы #многомерный массив #paypal

Вопрос:

Я хочу внедрить serverside-sdk с Paypal на свой веб-сайт. Пока все работает нормально.

После отправки payment-intent в Paypal я получаю массив с информацией о платеже от Paypal.

Если я print_r верну объект, который я получил, он выглядит так в моем браузере:

 PayPalApiPayment Object (

    [_propMap:PayPalCommonPayPalModel:private] => Array ( [intent] => sale [payer] => PayPalApiPayer Object ( 

    [_propMap:PayPalCommonPayPalModel:private] => Array ( [payment_method] => paypal ) ) [transactions] => Array ( [0] => PayPalApiTransaction Object ( 

    [_propMap:PayPalCommonPayPalModel:private] => Array ( [amount] => PayPalApiAmount Object ( 

    [_propMap:PayPalCommonPayPalModel:private] => Array ( [total] => 0.50 [currency] => EUR ) ) [related_resources] => Array ( ) ) ) ) [redirect_urls] => PayPalApiRedirectUrls Object ( [_propMap:PayPalCommonPayPalModel:private] => Array ( [return_url] => https://www.fabiansquinobal.com/addjob_submitted.php [cancel_url] => https://example.com/your_cancel_url.html ) ) [id] => PAYID-LSSMWWI9WR61061C3673442W [state] => created [create_time] => 2019-04-03T15:03:52Z [links] => Array ( [0] => PayPalApiLinks Object ( 

    [_propMap:PayPalCommonPayPalModel:private] => Array ( [href] => https://api.sandbox.paypal.com/v1/payments/payment/PAYID-LSSMWWI9WR61061C3673442W [rel] => self [method] => GET ) ) [1] => PayPalApiLinks Object ( 

    [_propMap:PayPalCommonPayPalModel:private] => Array ( [href] => https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkoutamp;token=EC-0RG36824VV460380F [rel] => approval_url [method] => REDIRECT ) ) [2] => PayPalApiLinks Object ( 

    [_propMap:PayPalCommonPayPalModel:private] => Array ( [href] => https://api.sandbox.paypal.com/v1/payments/payment/PAYID-LSSMWWI9WR61061C3673442W/execute [rel] => execute [method] => POST ) ) ) ) 
)
  

Я полностью перегружен этим. Мне нужно было бы знать, как я могу добраться до «[id] => PAYID-LSSMWWI9WR61061C3673442W» или вообще извлечь информацию из этой «вещи».

С уважением

Редактировать:

var_export Массив выглядит следующим образом:

 PayPalApiPayment::__set_state(

    array( '_propMap' => array ( 'intent' => 'sale', 'payer' => PayPalApiPayer::__set_state(

    array( '_propMap' => array ( 'payment_method' => 'paypal', ), )), 'transactions' => array ( 0 => PayPalApiTransaction::__set_state(

    array( '_propMap' => array ( 'amount' => PayPalApiAmount::__set_state(

    array( '_propMap' => array ( 'total' => '15.00', 'currency' => 'EUR', ), )), 'related_resources' => array ( ), ), )), ), 'redirect_urls' => PayPalApiRedirectUrls::__set_state(array( '_propMap' => array ( 'return_url' => 'https://www.fabiansquinobal.com/addjob_submitted.php', 'cancel_url' => 'https://example.com/your_cancel_url.html', ), )), 'id' => 'PAYID-LSSNC7I1CX40811F59322531', 'state' => 'created', 'create_time' => '2019-04-03T15:30:05Z', 'links' => array ( 0 => PayPalApiLinks::__set_state(

    array( '_propMap' => array ( 'href' => 'https://api.sandbox.paypal.com/v1/payments/payment/PAYID-LSSNC7I1CX40811F59322531', 'rel' => 'self', 'method' => 'GET', ), )), 1 => PayPalApiLinks::__set_state(

    array( '_propMap' => array ( 'href' => 'https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkoutamp;token=EC-98A35361RF153213R', 'rel' => 'approval_url', 'method' => 'REDIRECT', ), )), 2 => PayPalApiLinks::__set_state(

    array( '_propMap' => array ( 'href' => 'https://api.sandbox.paypal.com/v1/payments/payment/PAYID-LSSNC7I1CX40811F59322531/execute', 'rel' => 'execute', 'method' => 'POST', ), )), ), ), )

)
  

echo Объект выглядит следующим образом:

 { "intent": "sale",

        "payer": { "payment_method": "paypal" },

        "transactions": [ { "amount": { "total": "0.50", "currency": "EUR" },

        "related_resources": [] } ],

        "redirect_urls": { "return_url": "https://www.fabiansquinobal.com/addjob_submitted.php", "cancel_url": "https://example.com/your_cancel_url.html" },

        "id": "PAYID-LSSNFSY6AJ60558N2288040L",

        "state": "created", "create_time": "2019-04-03T15:35:38Z",

        "links": [ { "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAYID-LSSNFSY6AJ60558N2288040L",

        "rel": "self", "method": "GET" },

        { "href": "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkoutamp;token=EC-5KK55362XB209301D",

        "rel": "approval_url", "method": "REDIRECT" }, 
        { "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAYID-LSSNFSY6AJ60558N2288040L/execute",

        "rel": "execute", "method": "POST" } ] 
}
  

Комментарии:

1. Как будет выглядеть var_export этого массива?

2. Я добавил это в вопрос

3. Мы тоже не можем это прочитать. Можете ли вы вставить строку json вместо этого? Я просто хочу что-то, что мы можем использовать и / или прочитать. Форматирование вашего вопроса «не соответствует качеству»

4. Это сформулировано довольно красиво. Я пытаюсь установить некоторые перерывы

Ответ №1:

Либо декодируйте строку в массив и используйте:

 $arr = json_decode($json, true);
echo $arr['id'];
  

Или если вы хотите это как объект:

 $arr = json_decode($json);
echo $arr->id;
  

https://3v4l.org/bF2t9

Комментарии:

1. Спасибо, это сработало. Андреас, есть ли способ для меня, как я могу идентифицировать закодированный json? Как вы узнали? Просто взглянув на него?

2. Да, просто взглянув на него (в форматированном виде), вы увидите ссылку и раскомментируете var_dump. Затем вы можете увидеть, как массив гнездится и снова возвращается к основному массиву.