Добрый вечер, есть такой код:
$data = [
"date_from" => $date_from,
"date_to" => $date_to,
"from" => [
"extension" => "",
"number" => ""
],
"to" => [
"extension" => "",
"number" => ""
],
"fields" => "records, start, finish, from_extension, from_number, to_extension, to_number, disconnect_reason",
];
$json = json_encode($data);
$sign = hash('sha256', $api_key . $json . $api_salt);
$post = [
"vpbx_api_key" => $api_key,
"sign" => $sign,
"json" => $json
];
$post = http_build_query($post);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = json_decode(curl_exec($ch));
curl_close($ch);
Пытаюсь сделать следующее: есть апи телефонии, есть ключ апи и есть соль для подписей, пытаюсь отправить запрос на получение данных. В ответ получаю по апи сообщение "You are requesting with an invalid credential", уточнил в службе поддержки, получил ответ, что есть нуль символ в запросе и получают они у себя на стороне сервера такие данные:
"vpbx_api_key": "yiy0wyrvhft6nx4n1qwqfwtmsm4auvwj"
"amp;sign": ""
"amp;json": ""
Проверил у себя, http_build_query() отдает vpbx_api_key=[вырезал]&sign=[вырезал]&json=[вырезал]. То есть постороннего ничего нет. Уже пробовал менять кодировку файла, сохранять с bom и без, набирать весь код заново, массивом проверять количество символов у ключей, проверять через var_dump() данные, проверил на php7.1-7.3, переписывал код с использование готовой библиотеки с гитхаба (там та же ошибка).
Кто может подсказать, как решить проблему?