onlinerby/onliner-cart-api

Не могу получить данные о заказе по его номеру

tronicsby opened this issue · 16 comments

Добрый день
Не могу получить данные о заказе по его номеру.

BNSby commented

Присоединяюсь к вопросу.
Запросы вида: https://cart.api.onliner.by/orders/498e6 всегда возвращают ответ вида
{ "message": "Заказ 498e6 не найден" }

@tronicsby @BNSby Укажите, пожалуйста, полный запрос с заголовками. Такое возможно, если указан неправильный или просроченный авторизационный токен.

вот пример работы скрипта

tronics.by

@tronicsby ничего не вижу, пустой комментарий

function api_orders($url,$token,$method,$headers) {
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER,$headers);
curl_setopt($process, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($process, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($process);
curl_close($process);
return $result;
}

$result=api_orders('https://cart.api.onliner.by/orders/'.$orderKey.'/',$token,'GET',array('Accept: application/json','charset=utf-8','Authorization: Bearer '.$token));

var_dump($token);

токен выдан для магазина #1689 а вот указанный заказ связан с чужим магазином.

я же не указывал нигде номер заказа

так, извините, перепутал с другим комментарием. оттуда брал номер заказа.
давайте смотреть дальше. токен истек, нужно получить новый.

а вообще попробуйте убрать строчку curl_setopt($process, CURLOPT_POSTFIELDS, $data); так как ваш запрос идет методом GET

и заголовки перепишите на

array('Accept: application/json; charset=utf-8', 'Authorization: Bearer ' . $token)

все правильно
1689 - это наш магазин.
вот для примера номера заказов:
ae983
221t4
6t149

на данный момент ответ:
301 Moved Permanently

раньше был в виде json
как в сообщении от BNSby (см.выше)

уберите слеш в конце URL, либо включите переход по редиректам для CURL curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

{"message":"Заказ ae983 не найден"}

воспроизвел, будем разбираться. до конца дня постараемся ответить.

@tronicsby была проблема на нашей стороне с проверкой токена. можете перезапросить токен и попробовать снова. если все хорошо - закрывайте задачу.