Обновите значения в базе данных после получения сообщения об успехе с помощью curl - PullRequest
0 голосов
/ 25 ноября 2018

Я получаю сообщение ниже после передачи значений в URL с curl:

{"AddManifestDetails":[{"AuthKey":"Valid","ReturnMessage":"successful",}]

Если ReturnMessage успешно , чем я хочу обновить значения в базе данных, я попробовал ниже код:

<?php

$data = 
array (
'OrderNo' => $order_id,
'AirWayBillNO' => $resultc[0]['awb'],
);

$url = "http://114.143.206.69:803/StandardForwardStagingService.svc/AddManifestDetails";

$data = json_encode($data);
$curl = curl_init($url);

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

$curl_response = curl_exec($curl);
curl_close($curl);
echo $curl_response ."\n";
$res=json_decode($curl_response);

foreach ($res->curl_response as $values) 
{
if($values->ReturnMessage=='successful')
    {
      $usql="update  do_order set tracking_id='".$resultc[0]['awb']."',shipping_name='xpress', where order_id='".$order_id."'";       
      $result=$db_handle->executeUpdate($usql);  
      echo "1";die;
    }
    else
    {
      echo $values->ReturnMessage;die;
    }
}

Вот полный код: https://pastebin.com/EvcEY0xp

Результат :

Примечание: неопределенное свойство: stdClass :: $ curl_response

Предупреждение: неверный аргумент указан для foreach ()

1 Ответ

0 голосов
/ 25 ноября 2018

$res уже будет содержать декодированный ответ от запроса curl, который будет иметь только 1 свойство - AddManifestDetails.

Попробуйте выполнить следующее:

<?php

$data = 
array (
'OrderNo' => $order_id,
'AirWayBillNO' => $resultc[0]['awb'],
);

$url = "http://114.143.206.69:803/StandardForwardStagingService.svc/AddManifestDetails";

$data = json_encode($data);
$curl = curl_init($url);

curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

$curl_response = curl_exec($curl);
curl_close($curl);
echo $curl_response ."\n";
$res=json_decode($curl_response);

if($res->AddManifestDetails[0]->ReturnMessage=='successful')
{
    $usql="update  do_order set tracking_id='".$resultc[0]['awb']."',shipping_name='xpress' where order_id='".$order_id."'";       
    $result=$db_handle->executeUpdate($usql);  
    echo "1";
    die;
}
else
{
    echo $res->AddManifestDetails[0]->ReturnMessage;
    die;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...