Общая схема работы

Для использования XML-интерфейса по подписке требуются версии r_keeper:

  • 7.6.2.286+
  • 7.6.4.347+
  • 7.6.5.40+
  1. Для работы с XML-интерфейсом и выполнения команд SaveOrder, PayOrder необходимо дополнительно передавать информацию о лицензии LicenseInfo.
  2. Лицензия заводится и генерируется на сервере лицензирования (далее СЛ), при этом в локальной БД ИНТЕГРАЦИИ в зашифрованном виде должны сохраняться учетные данные, необходимые для выполнения запросов к СЛ: токен, id активной лицензии, порядковый номер запроса seqNumber.
  3. Для интеграции нужно использовать один из имеющихся продуктов в таблице ниже.
  4. Выбор продукта XML-SaaS определяется в соответствии с назначением (типом) интегрируемого продукта. 
  5. Обратите внимание, что продукты в таблице, вроде KDS или CRM, не являются продуктами компании UCS - это категории, определяющие назначение интегрируемого продукта. Например:
    1. ​Ваш продукт связан с управлением клиентам (CRM) - для интеграции выбирайте лицензию R-Keeper модуль XML-интерфейс для CRM.
    2. Ваш продукт связан с отслеживанием статусов заказов на кухне -  для интеграции выбирайте лицензию R-Keeper модуль XML-интерфейс для KDS.
    3. Если интегрируемый продукт не может быть отнесен к одному из направлений CRM, KDS, Доставка, Киоск - выбирайте для интеграции лицензию R-Keeper модуль XML-интерфейс для Приложения

Продукты с XML-SaaS ProductGUID
R-Keeper модуль XML-интерфейс для CRM 12 мес ПО f2af3b7e-4225-4e36-b72d-c65e7b9a04c6
R-Keeper модуль XML-интерфейс для CRM 1мес ПО  fb4ba8ec-ea17-4268-a05d-cad9a598ab95
R-Keeper модуль XML-интерфейс для KDS 12 мес ПО 9a55a4a4-c2b4-412b-a558-90d8a8443850
R-Keeper модуль XML-интерфейс для KDS 1мес ПО  5674248a-06f5-4116-916f-09b1383f80a2
R-Keeper модуль XML-интерфейс для Доставки 12 мес 310bc5c7-b0ca-4790-bdeb-afe0d9cf516b
R-Keeper модуль XML-интерфейс для Доставки 1мес ПО c4fc346f-df29-4083-b611-49eb275544e8
R-Keeper модуль XML-интерфейс для Киоск 12 мес ПО 1c09f192-7938-4b17-9db5-f78856c633ad
R-Keeper модуль XML-интерфейс для Киоск 1мес ПО dc79065a-2e33-47ee-85d7-a375444f7835
R-Keeper модуль XML-интерфейс для Приложения 12 мес ПО 655cee55-7bcd-4826-b6e0-a8ccf2017ef3
R-Keeper модуль XML-интерфейс для Приложения 1мес ПО 4458d8b1-0019-4025-8c7a-60a83ad64b66

Авторизация

Для запросов к СЛ требуется авторизация.

Для авторизации требуются следующие данные:

  • userName - логин Интегратора (дилера)
  • password - пароль Интегратора (дилера)
  • token - токен безопасности, выдается на Интегратора и является единым для всех интеграций данного Интегратора

Примечание: Для получения токена безопасности отправьте письмо с запросом на integrations@rkeeper.ru

В заголовке запроса должен быть передан параметр usr, правило его формирования:

usr : Base64(userName + «;» + lowercase(md5(userName+password)) + «;» + lowercase(md5(token)))

 

Запрос id лицензии

Для получения id лицензии к API СЛ выполняется запрос GetLicenseIdByAnchor

GetLicenseIdByAnchor?anchor=6:<productGUID>#<restCode>/17

Где 

  • productGUID - GUID продукта
  • restCode - код ресторана

Пример заполнения якоря для продукта "R-Keeper модуль XML-интерфейс для Приложения 12 мес ПО" для объекта 199999993

6:655cee55-7bcd-4826-b6e0-a8ccf2017ef3:199999993/17
ВАЖНО: символы ": # /" в строке должны быть экранированы!! (: - %3A # - %23)
т.е. запрос будет иметь вид:
https://l.ucs.ru/ls5api/api/License/GetLicenseIdByAnchor?anchor=6%3A655cee55-7bcd-4826-b6e0-a8ccf2017ef3%23199999993/17

Важно: Для положительного ответа на объекте должна быть подтверждена заявка на указанное ПО и сгенерирована активная лицензия.

В ответ получим информацию об активной лицензии:

{"id":"fe4e4c5a-3037-4f0c-8216-7b98be6d87bb","expirationDate":"2020-03-26T00:00:00","qty":1.0}

Полученный id должен сохраняться в БД интегрируемого продукта и передаваться при заполнении LicenseInfo в атрибуте licenseToken.

Обновление id нужно выполнять каждый раз при старте интеграции и при периодических проверках лицензии, например, каждые 30-90 минут либо при ошибках выполнения запроса перед повтором.

 

Заполнение LicenseInfo

При отправке команд SaveOrder, PayOrder, MakeRetunGoods интегрируемый продукт проверяет наличие в БД информации о лицензии (id лицензии), если id найден в xml запрос добавляется дополнительный элемент LicenseInfo.

<LicenseInfo anchor="6:655cee55-7bcd-4826-b6e0-a8ccf2017ef3#199999993/17" licenseToken="fe4e4c5a-3037-4f0c-8216-7b98be6d87bb">
<LicenseInstance guid="instance_guid" seqNumber="0"/>
</LicenseInfo>
  • anchor - якорь лицензии
  • licenseToken - id лицензии
  • guid - уникальный guid экземпляра приложения (При первом старте интеграции должен быть сгенерирован автоматически, в дальнейшем хранится локально и передается в каждом запросе)
  • seqNumber -  порядковый номер запроса. При первом вызове для нового guid должен быть 0, увеличивается при каждом запросе. в ИНТЕГРАЦИИ  должно быть реализовано хранение текущего seqNumber в оперативной памяти или локальной БД. Для получения актуального значения на старте приложения можно использовать команду GetXMLLicenseInstanceSeqNumber, но эту команду нельзя выполнять слишком часто.

XSD схемы запросов можно посмотреть на ftp://tp.ucs.ru/rk7/ForDealers/XMLInterface/XML-Schemes