Нуль символ в запросе, как найти?

Добрый вечер, есть такой код:

$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, переписывал код с использование готовой библиотеки с гитхаба (там та же ошибка).

Кто может подсказать, как решить проблему?
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
$post = http_build_query($post); подобные преобразование уже лет 5 как "легаси" врзможно требуется передать заголовки для корретной передачи.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 20:24
10000 руб./за проект
24 апр. 2024, в 19:51
1000 руб./за проект