Помощь Сменить статус у заказа post запросом со стороны

Tupen

Создатель
Регистрация
27 Фев 2013
Сообщения
20
Реакции
15
Здравствуйте!

У меня есть id заказа и id статуса на который нужно поменять статус. Как мне имея эти данные поменять статус заказа в shop-script отправив запрос со стороны? Уже битый час пытаюсь решить этот вопрос, не получается. У них есть api, но документация по нему уж очень скудная(

Может кто решал данный вопрос и подскажет?
 
Просто по id вы не поменяете. Нужно еще некоторые параметры в запросе передать.
И документация вроде бы ничего у них Для просмотра ссылки Войди или Зарегистрируйся.
Кроме того есть еще и специальные действия.
Пока не было api я делал из изменение статуса заказа через плагин оплаты. Он позволяет принимать запросы и менять статусы заказа.
 
Просто по id вы не поменяете. Нужно еще некоторые параметры в запросе передать.
И документация вроде бы ничего у них Для просмотра ссылки Войди или Зарегистрируйся.
Кроме того есть еще и специальные действия.
Пока не было api я делал из изменение статуса заказа через плагин оплаты. Он позволяет принимать запросы и менять статусы заказа.
Документация действительно есть, не туда смотрел.
Теперь не могу получить ACCESS_TOKEN.
CLIENT_ID - это id пользователя от имени которого будет взаимодействовать api
CLIENT_NAME - это логин этого же пользователя
SCOPE - что это такое?
REDIRECT_URL - Куда переадресовывать?
 
А аутификацией почти разобрался. Отправляю запрос, получаю параметр CODE, потом снова формирую GET запрос уже с этим code для получения токена. Получаю ответ: { "error": "invalid_request", "error_description": "Required parameter is missing: code" }. Сначала думал, что url не тот формируется. Проверил. Все верно. Дальше загуглил эту проблему, на форуме webasyst пишут, что запрос оказывается должен быть POST, а не GET. Отправляю POST запрос, в ответ получаю туже самую ошибку. Что я делаю не так?

Код:
$client_id = 'myapp1234';
$client_name = 'MY-APP';
$response_type = 'code';
$scope = 'shop';
$redirect_uri = 'http://site2.ru/api/waapi.php';
$format = 'json';

$url = 'https://site1.ru/api.php/auth';

$params = array(
    'client_id'     => $client_id,
    'client_name'     => $client_name,
    'response_type' => $response_type,
    'scope'         => $scope,
    'redirect_uri'     => $redirect_uri,
    'format'         => $format

);

echo $link = '<p><a href="' . $url . '?' . urldecode(http_build_query($params)) . '">Получить токен</a></p>';

if (isset($_GET['code'])) {

    $paramst = array(
        'client_id'     => $client_id,
        'grant_type'     => $_GET['code'],
        'redirect_uri'  => $redirect_uri,
        'format'        => $format
    );

    $url = 'https://site1.ru/api.php/token?';

  
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);

curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($paramst));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);
curl_close($curl);
echo $result;
  
};
 
Вы хотите делать запрос сервер-сервер или приложение-сервер?
Не уверен что у вас получится сделать сервер-сервер без ручного ввода. Так как аутентификация происходит на стороне клиента (приложения). Тогда на сервере придется эмулировать подтверждение разрешения на доступ к api
<-------------- добавлено через 61 сек. -------------->
Просто так без полного разбора вашей ситуации вам вряд ли кто поможет. Нужно вникать в суть задачи.
 
А что вам мешает сменить статус в БД - это реально проще.
Если менять данные то это в идеале PUT, но если пишет в инструкции POST - пробуй его.
Ругается, скорей всего, на body твоего запроса. Аутентификацию, можешь попробовать пройти по sessionId, но с доступами для требуемый изменений.
 
Я вот тоже не могу понять зачем такие сложности? Почему бы просто не поменять статус заказа в админке магазина? Ну или просто sql запросом прямо БД сайта сменить для нужного order_id статус. Если не ошибаюсь это в таблице shop_orders.
 
Назад
Сверху