dimastik1986
@dimastik1986
учусь

Объект который содержит массив?

Друзья, я немного запутался (( Мне нужно получить от api информацию
мой запрос
$params = array(
    'user'  => $JDE_user,
    'token' => $JDE_token
);

$date_begin = new DateTime($GET['date_begin']);
$date_end = new DateTime($GET['date_end']);
$post_data = array(
    'states'     => "Delivered",
    'date_begin' => $date_begin->format("d.m.Y")." 00:00:00",
    'date_end'   => $date_end->format("d.m.Y")." 00:00:00"
);
$cURL = "https://api.jde.ru/vD/orders?".http_build_query($params);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $cURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
$JDE = curl_exec($ch);
$JDE = json_decode($JDE, true);
curl_close($ch);


POST /orders?user=[user]&token=[token]
Строка запроса: https://api.jde.ru/vD/orders

Для получения списка заявок, необходимо в теле запроса указать следующие параметры и отправить POST запрос с параметрами даты начала, даты окончания и статусы заявок в теле запроса. Запрос должен содержать строку в json формате.
{
  // Начальная дата
  "date_begin":"01.01.2018 00:00:00",
  //Конечная дата
  "date_end": "05.03.2018 00:00:00",
  //Статус заявки
  "states": ["Delivering","Delivered"]
}


https://api.jde.ru/dev/api/orders/list-orders.html


служба поддержки написала мне что
Вы присылаете в теле запроса массив $post_data, а необходимо прислать объект!!! В котором свойство states- это массив!


как мне исправить код, чтобы условие было соблюдено? Спасибо!
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
Ерунду какую то вам ТП написала. json_encode() ассоциативные массивы автоматически к объектам приводит. А по поводу states напишите так:
$post_data = array(
    'states'     => ["Delivered"],
    'date_begin' => $date_begin->format("d.m.Y 00:00:00"),
    'date_end'   => $date_end->format("d.m.Y 00:00:00")
);


upd: А! Кажется дошло что им не нравится. Добавьте
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы