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 23:59:59")
);
$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);


мне нужно через форму изменять 'states' соответственно я получаю из формы массив
[status] => Array
        (
            [0] => NewOrderByClient
            [1] => NotDone
            [2] => OnTerminalPickup
            [3] => OnRoad
            [4] => Delivering
            [5] => Delivered
        )


и делаю вот так
$i=0; $states = "[";
foreach ($GET['status'] as $key => $value){
  if($i > 0){ $states .= ","; }
  $states .= '"'.$value.'"'; $i++; }
$states .= "]";  

$post_data = array(
    'states'     => $states,
    'date_begin' => $date_begin->format("d.m.Y 00:00:00"),
    'date_end'   => $date_end->format("d.m.Y 23:59:59")
);


на выходи от api получаю ошибку... что я делаю не так? Спасибо!

ссылка на мануал api
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
@artem78
// ...
$post_data = array(
    'states'     => array_values($_GET['status']),
    'date_begin' => $date_begin->format("d.m.Y 00:00:00"),
    'date_end'   => $date_end->format("d.m.Y 23:59:59")
);
// ...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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