Общая схема работы
Для использования XML-интерфейса по подписке требуются версии r_keeper:
- 7.6.2.286+
- 7.6.4.347+
- 7.6.5.40+
- Для работы с XML-интерфейсом и выполнения команд SaveOrder, PayOrder необходимо дополнительно передавать информацию о лицензии LicenseInfo.
- Лицензия заводится и генерируется на сервере лицензирования (далее СЛ), при этом в локальной БД ИНТЕГРАЦИИ в зашифрованном виде должны сохраняться учетные данные, необходимые для выполнения запросов к СЛ: токен, id активной лицензии, порядковый номер запроса seqNumber.
- Для интеграции нужно использовать один из имеющихся продуктов в таблице ниже.
- Выбор продукта XML-SaaS определяется в соответствии с назначением (типом) интегрируемого продукта.
- Обратите внимание, что продукты в таблице, вроде KDS или CRM, не являются продуктами компании UCS - это категории, определяющие назначение интегрируемого продукта. Например:
- Ваш продукт связан с управлением клиентам (CRM) - для интеграции выбирайте лицензию R-Keeper модуль XML-интерфейс для CRM.
- Ваш продукт связан с отслеживанием статусов заказов на кухне - для интеграции выбирайте лицензию R-Keeper модуль XML-интерфейс для KDS.
- Если интегрируемый продукт не может быть отнесен к одному из направлений 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