Не получается провести онлайн-расчет отправления через 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'
Подскажите, пожалуйста, кому-то приходилось работать с ними? В чем причина ошибки?