[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: api  wildberries
Reh
Привет, люди)
Я задолбался, вообще не понимаю как это работает, сдек, озон, робокасса подключились вообще без проблем, а с этими ягодами даже принцип понять не могу. Есть два ключа(32 и 64) и токен. Так же в описании как во всех апи есть адреса методов типо такого - GET
​/public​/api​/v1​/info
Получение информации по номенклатурам, их ценам, скидкам и промокодам. Если не указывать фильтры, вернётся весь товар.

Но я хоть убей не понимаю как сделать соединение, если курлом, то на какой адрес, что отправлять, если аяксом, то вроде как то авторизация проходит но всегда возвращается пустой массив, если только ключ неверный ставишь то ошибка. Может есть пара примеров, наверняка кто то что то делал
Michael
Адрес же вот, в api есть: https://suppliers-api.wildberries.ru/public/api/v1/info
А здесь авторизацию походу прошли:
https://qna.habr.com/q/993201

$headers = array(     
'Authorization: '.$apiKey,


_____________
There never was a struggle in the soul of a good man that was not hard
Reh
Я видел эту статю, но че то она мне не помогла) Я конечно мож не правильно ее понимаю.
У меня примерно так выглядит код


$url = " https://suppliers-api.wildberries.ru/public/api/v1/info";

$headers = [
'Content-Type: application/json',
'X-Supplier-ID: 9e147c5a-2c49-46ee-88d4-513e26986f5d',
'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc7899U3YWRmLTcyNzctNGRlOS04NjRhLTVhNTI1ZGJhY2QwZCJ9.8o409jymVB0BlhJXV-Xx018M3SjmaaDZtl_EIPNAf9c'
];

$options = [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => $headers
];

$ch = curl_init();
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
curl_close($ch);

var_dump($result); exit();
Reh
Вот так выглядит рабочий озон. Со сдеком там другая система, сначала получаем токен первым запросом, а вторым уже данные. Но с этими ягодами вообще никак не двигается.


// ОЗОН
static function curl_ozon($data, $url){

$headers = [
'Content-Type: application/json',
'Host: api-seller.ozon.ru',
'Client-Id: ' . '23913434349',
'Api-Key: ' . '1a93405f-e37b-4bbd-b507-adf535d0cca'
];

$options = [
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => $headers
];

$ch = curl_init();
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
curl_close($ch);
Michael
А что в result ?

$url = " https://suppliers-api.wildberries.ru/public.../v1/info";

, а этот пробел вначале, он и в коде так?

_____________
There never was a struggle in the soul of a good man that was not hard
Michael
Если это к адресу info,

то что там за

CURLOPT_POSTFIELDS => json_encode($data),

?

Это должен быть GET запрос
, вот для гет у меня:

curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl,CURLOPT_HEADER,false);

_____________
There never was a struggle in the soul of a good man that was not hard
Reh
Не) В коде нету.

В данном варианте выдает - метод не разрешен.

Если его заменить например на этот - GET /api​/v2​/supplies Возвращает список поставок

То выдает вообще какую то ахинею.

string(153) "{"error":true,"errorText":"У данного поставщика уже есть активная поставка","additionalErrors":null,"data":null}"

При ошибке должен быть такой

{
"error": true,
"errorText": "string"
}


Если все норм то так

{
"supplies": [
{
"supplyId": "WB-GI-1234567"
}
]
}


Но откуда ошибка то, даже логически если есть поставка то он должен вернуть номер, если нету то ошибку. А он пишет ошибка - поставка уже есть, я ж не создаю ее.

Авторизация как я понимаю проходит, но ответ я не понимаю что означает.

Цитата
то что там за

CURLOPT_POSTFIELDS => json_encode($data),

?


В некоторые методы нудна доп инфа, например фильтр и тд, я ее тут передаю.
В данном тоже можно указать.
Reh
Цитата
Это должен быть GET запрос
, вот для гет у меня:

curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'GET');
curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl,CURLOPT_HEADER,false);



Поправил на так.


CURLOPT_URL => $url,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_CUSTOMREQUEST =>'GET',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_HEADER => false


Пришел огромны набор цифр, думаю то что надо. Огромное спасибо!!! Запрос был не GET. Отсюда и проблемы.

Я перед этим так пробовал

curl_setopt($ch, CURLOPT_HTTPGET, 1);
но не сработало
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.