Вопрос по api webasyst

При изменении заказа в retailCRM срабатывает триггер, который отправляет http-запрос по указанному адресу.

Нам нужно как-то принимать эти запросы в магазине webasyst и затем изменять данные о заказе в магазине.

Для этих целей решили разработать плагин.

В связи с этим возник ряд вопросов:

1) как обращаться по api к методам плагина?

2) как получить assecc-token для серверного приложения?

ПробовалИ получить его способом, указанным в доках, но запрос на получение токена всегда возвращает ошибку, что не указан обязательный параметр code.

3) какое "время жизни" у токена?

1 ответ

  • 2
    Михаил Ушенин Webasyst 21 декабря 2017 16:18 #

    Стандартное API не позволяет обращаться к методам плагинов. Поэтому "API" в своём плагине нужно сформировать самостоятельно. Вот только я не уверен, что вы сможете использовать для этого встроенный во фреймворк механизм авторизации через токен. Скорее всего, вам придётся самостоятельно создавать какой-то подобный механизм в плагине.

    Что-то подобное есть, например, в плагине "1С (CommerceML)": плагин формирует "секретный" URL, который нужно скопировать и сохранить в настройках "1С", и система учёта по этому URL обращается к магазину через контроллер плагина.

    • +1
      moroz34 moroz34 21 декабря 2017 22:11 #

      Спасибо за ответ.

      А если реализовывать не через плагин, а стороннее приложение? Например, из retailCRM отправляется запрос к приложению, а приложение в свою очередь обрабатывает поступившие данные и отправляет запрос в webasyst по api для изменения данных о заказе. Как тогда авторизовываться? Пробовала отправлять запрос как указано в документации для получения кода, затем отправляла запрос для получения токена, но мне возвращало ошибку, что не указан обязательный параметр code, хоть я его и передавала.

      Токен этот один раз нужно получать? Он выдается на какой-то срок?

      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 22 декабря 2017 16:44 #
        Пробовала отправлять запрос как указано в документации для получения кода, затем отправляла запрос для получения токена, но мне возвращало ошибку, что не указан обязательный параметр code, хоть я его и передавала.

        Вы, видимо, использовали вариант подключения к API "А. Серверные приложения"? В документации сейчас неточность: приведён пример GET-запроса, тогда как правильно отправлять POST-запрос на адрес вида http://ACCOUNT_URL/api.php/token?redirect_uri=REDIRECT_URI&format=FORMAT, а в теле POST-запроса указать параметры code, client_id и authorization_code. Чуть позже документацию подправим для этого случая.

        Ещё неточность в документации: одноразовый CODE действителен в течение 3 минут, а не 5.

        Токен этот один раз нужно получать? Он выдается на какой-то срок?

        Токен не имеет срока жизни. Но вы можете самостоятельно ограничить его, установив для своего токена дату и время в поле expires в таблице wa_api_tokens.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите