#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;
Комментарии:
1. Спасибо, это сработало. Андреас, есть ли способ для меня, как я могу идентифицировать закодированный json? Как вы узнали? Просто взглянув на него?
2. Да, просто взглянув на него (в форматированном виде), вы увидите ссылку и раскомментируете var_dump. Затем вы можете увидеть, как массив гнездится и снова возвращается к основному массиву.