преобразование ответа API в строку PHP

0

Ниже мой код, я пытаюсь получить конкретный ответ api (msg, amt) в php-строке.........................................................................................................................................

$key = "XXXXX";
$mykey = "XXXXX";
$command = "Check";
$value = "5454355435"; 


$r = array('key' => $key , 'value' => $value, 'command' =>  $command);

$qs= http_build_query($r);
$wsUrl = "https://info.service-provider.com";

$c = curl_init();
curl_setopt($c, CURLOPT_URL, $wsUrl);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, $qs);
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, 0);
$o = curl_exec($c);
if (curl_errno($c)) {
  $sad = curl_error($c);
  throw new Exception($sad);
}
curl_close($c);

$valueSerialized = @unserialize($o);
if($o === 'b:0;' || $valueSerialized !== false) {
  print_r($valueSerialized);
}

print_r($o);

ОТВЕТ:

{"status":1,"msg":"1 out of 1 Transactions Fetched Successfully","transaction_details":{"2767712494": {"mihpayid":"268999084","request_id":"","ref_num":"020814301298","amt":"1.00","txnid":"5454355435","additional_charges":"0.00","productinfo":"SHIRT"}}}
  • 0
    Вам нужно декодировать строку json, используя print_r(json_decode($valueSerialized,true));
  • 0
    какое значение вам нужно?
Теги:

2 ответа

2
Лучший ответ

Ваша строка находится в формате json. Чтобы получить от него значение, вы должны преобразовать его в array следующим образом:

$json = '{"status":1,"msg":"1 out of 1 Transactions Fetched Successfully","transaction_details":{"2767712494": {"mihpayid":"268999084","request_id":"","ref_num":"020814301298","amt":"1.00","txnid":"5454355435","additional_charges":"0.00","productinfo":"SHIRT"}}}';

$array = json_decode($json, true);

echo '<pre>'; print_r($array);

Ваш массив будет выглядеть так:

Array
(
    [status] => 1
    [msg] => 1 out of 1 Transactions Fetched Successfully
    [transaction_details] => Array
        (
            [2767712494] => Array
                (
                    [mihpayid] => 268999084
                    [request_id] => 
                    [ref_num] => 020814301298
                    [amt] => 1.00
                    [txnid] => 5454355435
                    [additional_charges] => 0.00
                    [productinfo] => SHIRT
                )

        )

)

Чтобы получить msg, вы должны написать вот так:

echo $array['msg'];

Вы можете получить дополнительную информацию от json_decode

Дайте мне знать для получения дополнительной помощи.

  • 0
    На самом деле, я пробовал тот же код, но чуть ниже, чтобы print_r($o); Так что из-за утверждения If я получил ошибку. Thnx.
  • 0
    Всегда пожалуйста!
0

Этот ответ выглядит как формат JSON. Передайте эту строку ответа методу php json_decode, например:
$response = json_decode($yourResponseString,true);
и тогда вы должны иметь доступ к его свойствам, как обычный ассоциативный массив:
$msg = $response['msg'];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню