1. Введение

1.1. Подпункт

В приложении "Фискальное ядро" реализован WEB-cервер (далее - Сервер), который работает по протоколу JSON-RPC 2.0 и обрабатываем внешние (по сети) и внутренние (от других приложений, установленных на ККТ) запросы на фискализацию данных. На данный момент сервер работает по версии формата фискальных данных 1.2.

С помощью POST запросов отправляем данные (строку с JSON-RPC 2.0) на сервер по следующим адреса:
Для внутренних запросов (от других приложений): 127.0.0.1:8080
Для внешних запросов (по сети): на адрес ККТ, например: 192.168.0.68:8080
Или на адрес, указанный в настройках ККТ - Фискальное ядро - главное меню - раздел "Настройки".

Данные необходимо отправлять в запросе как "x-www-form-urlencoded" с ключом "jsonrpc".

Внимание! Перед использованием сервера убедитесь, что время на кассовом терминале, на котором запущен сервер, установлено правильно. После открытия фискального режима время изменить уже не получится.

Все параметры методов являются обязательными, кроме тех, которые помечены меткой (не обяз.).

Коды ошибок соответствуют JSON-RPC 2.0. Описание ошибок содержит сообщение о причине ошибки.
2. Фискальные методы

Перед началом работы необходимо установить фискальный накопитель и зарегистрировать контрольно-кассовый технику. Сделать это можно через приложение Фискальное ядро или с помощью соответствующего запроса.
Регистрация ККТ. Метод "openFiscalRegime".
/// Пример запроса 
Перерегистрация ККТ. Метод "refiscalizationFisDrv".
/// Пример запроса 
Закрытие ФН. Метод "closeFiscalRegime".
Параметры (ключ - тип значения):
«json» - String (сериализованный объект класса closeFiscalRegime)

Описание объектов:
· String cashier – фамилия и инициалы кассира.
· String cashierInn – ИНН кассира. Не обязательно, опционально.
· Boolean needPrint – где true - печатать документ, false - не печатать документ.
· Int id - произвольное числовое значение номера запроса, может повторятся.
/// Пример запроса "Закрытие ФН"

{
    "jsonrpc":"2.0","method":"closeFiscalRegime","params":
        {
            "cashier":"Иванов И.И.",
            "needPrint":true,
            "cashierInn":"0815612112"
        },
    "id":4
}
Открытие смены. Метод "openShift".
Параметры (ключ - тип значения):
«json» - String (сериализованный объект класса OpenShift)

Описание объектов:
· String cashier – фамилия и инициалы кассира.
· String cashierInn – ИНН кассира. Не обязательно, опционально.
· Boolean needPrint – где true - печатать документ, false - не печатать документ.
/// Пример запроса "Открытие смены" (с указанием ИНН кассира)

{
    "jsonrpc":"2.0","method":"openShift","params":
        {
            "cashier":"Иванов И.И.",
            "needPrint":true,
            "cashierInn":"112233445566"
        },
    "id":2
}


/// Пример запроса "Открытие смены" (без указания ИНН кассира)

{
    "jsonrpc":"2.0","method":"openShift","params":
        {   
            "cashier":"Иванов И.И.",
            "needPrint":true
        },
    "id":2
}
3. Вспомогательные методы


Обновляется.
Сброс МГМ ФН (тестовый ФН). Метод "resetFisDrv".
/// Пример запроса "Сброс МГМ ФН"

{  
    "jsonrpc":"2.0",
    "method":"resetFisDrv",
    "id":7
}
Проверка наличия бумаги в принтере. Метод "isContainPaper".
/// Пример запроса "Проверка наличия бумаги в принтере"

{  
    "jsonrpc":"2.0",
    "method":"isContainPaper",
    "id":7
}


/// Пример ответа "Закончилась бумага"

{ 
    "id":7,
    "result":"\"isContainPaper\":false,
    \"error\": {\"message:\": В принтере закончилась чековая лента}",
    "jsonrpc":"2.0"
}


/// Пример ответа "Бумага присутствует"

{ 
    "id":7,
    "result":"\"isContainPaper\":true",
    "jsonrpc":"2.0"
}
3. Вспомогательные методы


Обновляется.