Добрый день!
Столкнулся с проблемой при получении организаций с помощью API.
Код php запроса с использованием curl:
$ch = curl_init();
$availOrganizationsVars = [
'organizationIds' => ['null'],
'returnAdditionalInfo' => true,
'includeDisabled' => true,
'returnExternalData' => ['null']
];
$vars = json_encode($availOrganizationsVars);
$headers = [
"Authorization: Bearer ".$token,
"Content-Type: application/json"
];
curl_setopt($ch, CURLOPT_URL, "https://api-ru.iiko.services/api/1/organizations");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars); // Post Fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
curl_close($ch);
Сервер отдает ошибку:
"errorDescription": "Body has invalid JSON format.", "error": "INVALID_BODY_JSON_FORMAT"
пробовал разные варианты:
1. посылать пустой объект в json
$empty = json_decode ("{}");
$vars= json_encode($empty);
2. вариант где null не строчное значение
$availOrganizationsVars = [
'organizationIds' => [null],
'returnAdditionalInfo' => true,
'includeDisabled' => true,
'returnExternalData' => [null]
];
$vars = json_encode($availOrganizationsVars);
3. вариант без массива
$availOrganizationsVars = [
'organizationIds' => null,
'returnAdditionalInfo' => true,
'includeDisabled' => true,
'returnExternalData' => null
];
$vars = json_encode($availOrganizationsVars);
и т.д.
При это, аналогичный запрос выше, на получение токена авторизации работает как должно:
$logIn = ['apiLogin' => '#####'];
$vars = json_encode($logIn);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api-ru.iiko.services/api/1/access_token");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars); // Post Fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = [
"Content-Type: application/json; charset=UTF-8"
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$server_output = curl_exec($ch);
curl_close($ch);
пример из документации:
а вот мой json, который я отправляю в теле запроса:
{
"organizationIds":[
"null"
],
"returnAdditionalInfo":true,
"includeDisabled":true,
"returnExternalData":[
"null"
]
}