За последние 24 часа нас посетил 20741 программист и 1117 роботов. Сейчас ищут 356 программистов ...

Запрос POST по API (ошибка с передачей данных)

Тема в разделе "PHP для новичков", создана пользователем MerklinNatalia, 10 янв 2021.

Метки:
  1. MerklinNatalia

    MerklinNatalia Новичок

    С нами с:
    10 янв 2021
    Сообщения:
    4
    Симпатии:
    1
    Всем привет) Пытаюсь по апи Розетки создать комплект.
    Передаем методом POST, token получила, авторизацию прохожу успешно, но получаю ошибку 1005, некорректные данные. В примере АПИ Request-Example, Body Params:
    Код (Text):
    1.  { "title": "New kit",
    2.    "start_date": "2017-10-01",
    3.    "end_date": "",
    4.    "item_id": 1234,
    5.    "secondItems":
    6.      [
    7.          { "item_id": 12345,
    8.            "relative_discount": "10",
    9.            "fixed_discount": 5,
    10.            "fixed_amount": 975
    11.          },
    12.          { "item_id": 12346,
    13.            "relative_discount": "5",
    14.            "fixed_discount": 7,
    15.            "fixed_amount": 975
    16.          },
    17.      ]
    18. }
    Мой код:
    PHP:
    1. $postdata =  array(
    2.         "title" => "New kit1",
    3.         "start_date" => "2022-10-01",
    4.         "item_id" => 128855179,
    5.         "secondItems" => array(array("item_id"=>271843346,
    6.                                    "relative_discount"=>"10",
    7.                                    "fixed_discount"=>5,
    8.                                    "fixed_amount"=>975
    9.                                 ))
    10. );
    11.     $opts = array('http' =>
    12.         array(
    13.             'method'  => 'POST',
    14.             'header'  => 'Authorization:Bearer {token}',
    15.             'content' => $postdata
    16.         )
    17.     );
    18.     $context  = stream_context_create($opts);
    19.  
    20. echo $result = file_get_contents('https://api-seller.rozetka.com.ua/kits/create', false, $context);
    Подскажите, пожалуйста, где ошибка.
    P.S. Я передаю в secondItems только один элемент, 2 мне не нужно) Но, если что, пробовала и с 2мя, та же ошибка. Всем спасибо)
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    обратиться в техподдержку АПИ не пробовали?

    может несуществующие item_id ?
     
  3. MerklinNatalia

    MerklinNatalia Новичок

    С нами с:
    10 янв 2021
    Сообщения:
    4
    Симпатии:
    1
    Поддержка там не из самых быстрых( item_id несколько раз проверяла, все верно.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.816
    Симпатии:
    735
    Адрес:
    Татарстан
    а
    так и передаете? Или вместо token реальный токен все-же вставляете?
    или

    "start_date" => "2022-10-01",
    может нельзя в будущем? )))
     
    MerklinNatalia нравится это.
  5. MerklinNatalia

    MerklinNatalia Новичок

    С нами с:
    10 янв 2021
    Сообщения:
    4
    Симпатии:
    1
    та нет) токен реальный, авторизация проходит)
    дату можно ставить вплоть до 10 лет вперед, так что хз(
    написала в поддержку, пока жду, другие операции проходят, типа обновления комплекта и тд, а здесь не идет(
     
  6. MerklinNatalia

    MerklinNatalia Новичок

    С нами с:
    10 янв 2021
    Сообщения:
    4
    Симпатии:
    1
    Разобралась, $postdata нужно было обернуть через http_build_query)
     
    Sail нравится это.