Подскажите cURL Отправка POST JSON

user99

Постоялец
Регистрация
13 Янв 2008
Сообщения
141
Реакции
15
Из FAQ по API

СОЗДАНИЕ ЗАПИСИ


Код:
<?php
$curl = curl_init('https://www.sima-land.ru/api/v2/cart-item');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/json'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query([MODEL-DATA]));
$json = curl_exec($curl);
curl_close($curl);
?>

HTTP ЗАПРОС
POST https://www.sima-land.ru/api/v2/cart-item


Код:
Мой скрипт:
$url = "https://www.sima-land.ru/api/v2/cart-item";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, "usrrs:asswd");


$post_fields = "cart_id:test&item_id:683848";



    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_fields));

    $json = curl_exec($curl);


$result = curl_exec($ch);
curl_close($ch);

Получаю:

[{"field":"item_id","message":"Item not found"},{"field":"cart_id","message":"Invalid cart id"}]

Подскажите пожалуйста что не так..
 
Можешь ссылку на FAQ дать?
 
В http_build_query надо массив передавать, а у вас строка.
 
Можешь ссылку на FAQ дать?

Скрытое содержимое доступно для зарегистрированных пользователей!



В http_build_query надо массив передавать, а у вас строка.

Массивы тоже пробовал вот так (значения соответственно свои передавал)

$data = array("name" => "Hagrid", "age" => "36");
$data_string = json_encode($data);
 
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array(cart_id => 'test', item_id => '683848')));
Всё равно не найдено?
 
судя по тексту ошибок неправильны сами параметры

Для просмотра ссылки Войди или Зарегистрируйся
Object with identifier 683848 not found

и например
Для просмотра ссылки Войди или Зарегистрируйся
все ок

683848 это случайно не артикул товара ?
Для просмотра ссылки Войди или Зарегистрируйся
 
данные нужно передавать в виде масива curl_setopt($c, CURLOPT_POSTFIELDS, array('cart_id' => 'test', 'item_id' => '683848'));
 
также для проверку лучше в конце вывести echo curl_multi_getcontent($c) и там смотреть что получает скрипт
 
Еще вопрос появился по этому же API, подскажите пожалуйста как данные из xml получить в переменные? Для просмотра ссылки Войди или Зарегистрируйся

В такой вид выдает Warning: simplexml_load_file(:( {"id":545,"root_id":2851,"parent_id":543,"level":5,"is_leaf":1,"name":" а в переменные не получается..
 
Назад
Сверху