Получения json данных в POST запросе

Была одна задача по интеграции сервиса pipedrive.com с protemos.com, где с первой получаю данные по сделке и отправляю во второй сервис.

Данные json с pipedrive.com отправляются методом POST на мой скрипт который уже после обработок отправляет дальше в protemos.com.

Прикол в том, что я ожидаю их получить в переменной $_POST, но их там нет, и техподдержка уверяет что данные уходят и доказывают это.

В принимающий скрипт добавил логирование глобальных массивов $_REQUEST, $_POST, $_GET
Ни в одном из массивов данных нет, хотя есть запись что $_REQUEST и $_POST приняли запрос но массив пустой.

Что за хрень???

Решение, получения данных json в POST запросе

После некоторого времени поиска решения, нашел в документации по $_POST, что в массив данные могут и не попадать если они отправлены не через форму, и для этого надо использовать инструкцию php://input

Пример получения данных json в POST запросе

<?php
// Get the JSON contents
$json = file_get_contents('php://input');

// decode the json data
$data = json_decode($json);
?>

Обратите внимание, в коде нет даже упоминания о $_POST

Оцените статью
Добавить комментарий