REST API

Изменить настройки драйвера

.. http:post:: /updateDriverSettings
   :noindex:

   Применяет новые настройки драйвера.

   :reqheader Content-Type: application/json
   :reqheader Content-Length: size

   :<json settings: настройки (**required**)
   :<jsonobj settings: :ref:`DeviceSettingsObject`

   :statuscode 200: успех
   :statuscode 400: ошибка запроса
   :statuscode 500: ошибка сервера

   :resheader Content-Type: application/json
   :resheader Content-Length: size

   :>json string status: *success*/*error* (**required**)
   :>json string error_category: категория ошибки (**optional**)
   :>json string error_message: описание ошибки (**optional**)
   :>json int error_code: код ошибки (**optional**)

Пример запроса

POST_DATA='
{
   "settings":
   {
      "bankProfile": "Bank1",
      "bankProfiles":
      {
         "Bank1":
         {
            "bankName": "Static",
            "staticQR": "https://qr.nspk.ru/AS100001ORTF4GAF80KPJ53K186D9A3G"
         },
         "Bank2":
         {
            "bankName": "CFT",
            "accAlias": "ACC_ALIAS",
            "extEntityId": "EXT_ENTITY_ID",
            "merchantId": "MERCHANT_ID",
            "password": "PASSWORD"
         }
      },
      "deviceConnection":
      {
         "connectionType": "BLE",
         "deviceAddress": "D9:24:D0:38:94:22",
         "deviceName": "V8BL120025"
      }
   }
}'
curl -i \
     -H "Content-Type: application/json" \
     -X POST http://localhost:1234/updateDriverSettings \
     -d "${POST_DATA//$'\n'/}"

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 20

{"status":"success"}

Получить настройки драйвера

.. http:get:: /getDriverSettings
   :noindex:

   Возвращает настройки драйвера.

   :statuscode 200: успех

   :resheader Content-Type: application/json
   :resheader Content-Length: size

   :>json string status: *success* (**required**)

   :>json settings: настройки (**required**)
   :>jsonobj settings: :ref:`DeviceSettingsObject`

Пример запроса

curl -i -X GET http://localhost:1234/getDriverSettings

Пример ответа(pretty print)

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 364

{
   "settings":
   {
      "bankProfiles" : {
         "Bank1" : {
            "bankName" : "Static",
            "staticQR" : "https://qr.nspk.ru/AS100001ORTF4GAF80KPJ53K186D9A3G"
         },
         "Bank2" : {
            "bankName" : "CFT",
            "accAlias" : "ACC_ALIAS",
            "extEntityId" : "EXT_ENTITY_ID",
            "merchantId" : "MERCHANT_ID",
            "password" : "PASSWORD"
         }
      },
      "deviceConnection" : {
         "connectionType" : "Bluetooth",
         "deviceAddress" : "D9:24:D0:38:94:22",
         "deviceName" : "V8BL120025"
      }
   },
   "status" : "success"
}

Очистить дисплей терминала оплаты

Важно

Драйвер должен быть настроен перед запросом(:ref:`Изменить настройки драйвера`).

.. http:post:: /clearScreen
   :noindex:

   Очищает дисплей терминала оплаты.

   :statuscode 200: успех
   :statuscode 400: ошибка запроса
   :statuscode 500: ошибка сервера

   :resheader Content-Type: application/json
   :resheader Content-Length: size

   :>json string status: *success*/*error* (**required**)
   :>json string error_category: категория ошибки (**optional**)
   :>json string error_message: описание ошибки (**optional**)
   :>json int error_code: код ошибки (**optional**)

Пример запроса

curl -i -X POST http://localhost:1234/clearScreen

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 20

{"status":"success"}

Сформировать QR код для оплаты

Важно

Драйвер должен быть настроен перед запросом(:ref:`Изменить настройки драйвера`).

.. http:post:: /showQR
   :noindex:

   Формирует QR код для оплаты и выводит его на дисплей терминала оплаты.

   :reqheader Content-Type: application/json
   :reqheader Content-Length: size

   :<json int amount: сумма платежа(в копейках) (**required**)
   :<json string purpose: назначение платежа (**optional**)
   :<json int ttl: время жизни QR кода(в минутах) (**optional**)

   :statuscode 200: успех
   :statuscode 400: ошибка запроса
   :statuscode 500: ошибка сервера

   :resheader Content-Type: application/json
   :resheader Content-Length: size

   :>json string status: *success*/*error* (**required**)
   :>json string error_category: категория ошибки (**optional**)
   :>json string error_message: описание ошибки (**optional**)
   :>json int error_code: код ошибки (**optional**)

Пример запроса

POST_DATA='
{
  "amount": 1000,
  "purpose": "testing",
  "ttl": 5
}'
curl -i \
     -H "Content-Type: application/json" \
     -X POST http://localhost:1234/showQR \
     -d "${POST_DATA//$'\n'/}"

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 20

{"status":"success"}

Получить статус транзакции динамического QR кода

Важно

Должен быть сформирован динамический QR код перед запросом(:ref:`Сформировать QR код для оплаты`).

.. http:get:: /getDynamicQRStatus
   :noindex:

   Возвращает последний статус транзакции динамического QR.

   :statuscode 200: успех
   :statuscode 400: ошибка запроса

   :resheader Content-Type: application/json
   :resheader Content-Length: size

   :>json string status: *success* (**required**)
   :>json string error_category: категория ошибки (**optional**)
   :>json string error_message: описание ошибки (**optional**)
   :>json int error_code: код ошибки (**optional**)

   :>json string dynamicQRStatus: статус транзакции *EMPTY*/*ERROR*/*PENDING*/*ACCEPTED*/*REJECTED*/*CANCELED*/*STATIC* (**required**)

Пример запроса

curl -i -X GET http://localhost:1234/getDynamicQRStatus

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 49

{"status":"success","dynamicQRStatus":"ACCEPTED"}

Сформировать информационный QR код

Важно

Драйвер должен быть настроен перед запросом(:ref:`Изменить настройки драйвера`).

.. http:post:: /showInfoQR
   :noindex:

   Формирует QR код из произвольной строки и выводит его на дисплей терминала оплаты.

   :reqheader Content-Type: application/json
   :reqheader Content-Length: size

   :<json string infoQR: информационная строка (**required**)

   :statuscode 200: успех
   :statuscode 400: ошибка запроса
   :statuscode 500: ошибка сервера

   :resheader Content-Type: application/json
   :resheader Content-Length: size

   :>json string status: *success*/*error* (**required**)
   :>json string error_category: категория ошибки (**optional**)
   :>json string error_message: описание ошибки (**optional**)
   :>json int error_code: код ошибки (**optional**)

Пример запроса

POST_DATA='
{
  "infoQR": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}'
curl -i \
     -H "Content-Type: application/json" \
     -X POST http://localhost:1234/showInfoQR \
     -d "${POST_DATA//$'\n'/}"

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 20

{"status":"success"}

Экспортировать базу данных в CSV файл

Важно

Драйвер должен быть настроен перед запросом(:ref:`Изменить настройки драйвера`).

.. http:post:: /exportToCSV
   :noindex:

   Экспортирует базу данных транзакций в CSV файл

   :reqheader Content-Type: application/json
   :reqheader Content-Length: size

   :<json string path: путь к файлу (**required**)

   :statuscode 200: успех
   :statuscode 400: ошибка запроса
   :statuscode 500: ошибка сервера

   :resheader Content-Type: application/json
   :resheader Content-Length: size

   :>json string status: *success*/*error* (**required**)
   :>json string error_category: категория ошибки (**optional**)
   :>json string error_message: описание ошибки (**optional**)
   :>json int error_code: код ошибки (**optional**)

Пример запроса

POST_DATA='
{
  "path": "history.db"
}'
curl -i \
     -H "Content-Type: application/json" \
     -X POST http://localhost:1234/exportToCSV \
     -d "${POST_DATA//$'\n'/}"

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 20

{"status":"success"}

Отобразить статус транзакции

Важно

Драйвер должен быть настроен перед запросом(:ref:`Изменить настройки драйвера`).

.. http:post:: /displayStatus
   :noindex:

   Отображает указанный статус транзакции на терминале

   :reqheader Content-Type: application/json
   :reqheader Content-Length: size

   :<json int status: статус (**required**)

   :statuscode 200: успех
   :statuscode 400: ошибка запроса
   :statuscode 500: ошибка сервера

   :resheader Content-Type: application/json
   :resheader Content-Length: size

   :>json string status: *success*/*error* (**required**)
   :>json string error_category: категория ошибки (**optional**)
   :>json string error_message: описание ошибки (**optional**)
   :>json int error_code: код ошибки (**optional**)

Пример запроса

POST_DATA='
{
  "status": 3
}'
curl -i \
     -H "Content-Type: application/json" \
     -X POST http://localhost:1234/displayStatus \
     -d "${POST_DATA//$'\n'/}"

Пример ответа

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 20

{"status":"success"}

Получить версию драйвера

.. http:get:: /version
   :noindex:

   Возвращает версию драйвера.

   :statuscode 200: успех

   :resheader Content-Type: application/json
   :resheader Content-Length: size

   :>json string status: *success* (**required**)

   :>json string version: версия (**required**)

Пример запроса

curl -i -X GET http://localhost:1234/version

Пример ответа(pretty print)

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 38

{"status":"success","version":"2.0.0"}