@Nikens

Как сделать онлайн-расчет через API ТК Энергия?

Не получается провести онлайн-расчет отправления через API ( apidoc.nrg-tk.ru/v3/ru )
Приходит ответ с ошибкой
stdClass Object
(
    [code] => InvalidJson
    [message] => Invalid json
    [extraInfo] => stdClass Object
        (
            [fieldMustBeType] => []api.CargoItem
            [fieldValue] => object
        )
)

Что-то с типом данных, хотя вроде бы всё по описанию. Сам исходный код запроса:
$data = array(
			  "idCityFrom" => (int)$kem,
			  "idCityTo" => (int)$code,
			  "cover" => 0,
			  "idCurrency" => 0,
			  "items" =>["weight"=>10.2,"width"=>0.39,"height"=>0.39,"length"=>0.54],
			  "declaredCargoPrice" => 0,
			  "idClient" => 0
			);
			$json = json_encode($data);
			$url = ('https://mainapi.nrg-tk.ru/v3/price');
			$ch = curl_init($url);
			curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Accept: application/json", "NrgApi-DevToken: Token"));
			curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
			curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			$result = curl_exec($ch);
			$obj = json_decode($result);


То ли с синтаксисом формирования параметров проблема, то ли еще с чем. Если через swagger запрос отправлять, то всё хорошо, расчёт проходит

{
  "idCityFrom": 3842,
  "idCityTo": 343,
  "cover": 0,
  "idCurrency": 0,
  "items": [
    {
      "weight": 10.0,
      "width": 0.39,
      "height": 0.39,
      "length": 0.54
    }
  ],
  "declaredCargoPrice": 0,
  "idClient": 0
}

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'NrgApi-DevToken: token' -d '{ \ 
   "idCityFrom": 3842, \ 
   "idCityTo": 343, \ 
   "cover": 0, \ 
   "idCurrency": 0, \ 
   "items": [ \ 
     { \ 
       "weight": 10.0, \ 
       "width": 0.39, \ 
       "height": 0.39, \ 
       "length": 0.54 \ 
     } \ 
   ], \ 
   "declaredCargoPrice": 0, \ 
   "idClient": 0 \ 
 }' 'https://mainapi.nrg-tk.ru/v3/price'


Подскажите, пожалуйста, кому-то приходилось работать с ними? В чем причина ошибки?
  • Вопрос задан
  • 568 просмотров
Решения вопроса 1
New_Horizons
@New_Horizons
Бред:
В элементе items массива забыл ещё одни квадратные скобки
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы