В тази статия се описва как да използвате файловия интерфейс на фискалната услуга.
Предварителни изисквания
- FiskalClient, версия 1.2.11 или по-нова
- FiscalClient като услуга (реализациите чрез nuget не се поддържат)
Поддържани държави
Понастоящем чрез файловия интерфейс се поддържат само изброените по-долу държави:
- Австрия
- Дания (от версия 1.3)
Допълнителна информация
Файловият интерфейс поддържа само много малка част от функционалността на фискалния клиент за предаване на необходимите данни за фискализация. Ако са необходими по-специфични команди, услугата все пак може да бъде интегрирана с инструменти като CURL чрез REST интерфейса. Това обаче не се обяснява в тази статия.
Активиране
Интерфейсът на файловата система може да бъде активиран, както следва:
- Задаване на пътя към мониторинга в appsettings.json.
- Създаване на директория в C:\ProgramData\RetailForce\Fiscal web service с име „fileSystemInterface“.
Внимание: За да активирате системата, услугата трябва да бъде рестартирана след тези настройки.
appsettings.json
"AppSettings": {
...,
"FileSystemInterfacePath": "c:/temp/filesysteminterface",
...
}
Записите преди и след това не са включени в примера. „c:\temp\filesysteminterface“ е пътят, който се наблюдава.
Как работи
Файловият интерфейс на фискалната услуга наблюдава директория за нови файлове с определена структура на имената. Веднага щом в тази директория бъде създаден нов файл, отговарящ на конвенциите за именуване, той се обработва.
Внимание: При по-големи файлове е препоръчително първо да запишете файла в директорията като временен файл и след това да го преименувате на правилното име с помощта на RENAME.
Процедура
Процедурата е както следва:
- Файлът се прехвърля в директорията и се разпознава (*.request)
- Файлът се обработва
- Файлът *.response или *.error се съхранява в директорията „response“ (поддиректория на директорията за импортиране) (същото име на файла преди разширението).
Пример
- 20220308135010236.document.request се прехвърля
- Файлът се обработва
- Файлът response/20220308135010236.document.response е съхранен.
или в случай на грешка
- 20220308135010236.document.request е прехвърлен
- Файлът се обработва
- Файлът response/20220308135010236.document.error е съхранен.
Отговорности
Обработените файлове с заявки се преместват в поддиректорията „processed“ от файловия интерфейс.
Файловият интерфейс никога няма да изтрие никакви файлове. Препоръчва се обаче по-старите файлове (разпознаваеми по датата им) да се архивират след определен период от време.
Осигуряване на правилната последователност
Последователността на обработката се осигурява чрез уникално име на файла, по което може да се сортира.
Структура на името на файла
YYYYMMDDHHNNSSZZZ.{type}.request
YYYY = Година (2022), диапазон на стойностите: 2022–3000
MM = месец (03 за март), диапазон на стойностите: 01–12
DD = ден (02 за 2-ри ден от месеца), диапазон на стойностите: 01–31
HH = Час в 24-часов формат, диапазон на стойностите: 00–23
NN = Минути (04 за 4 минути), диапазон на стойностите: 00-59
SS = Секунди (05 за 5 секунди), диапазон на стойностите: 00–59
ZZZ = Милисекунди (010 за 10 милисекунди), диапазон на стойностите: 000–999
Тип
{type} обозначава типа на заявката; съществуват следните типове:
- document – за предаване на разписка
- validateDocument – за валидиране на разписка
- command – за изпълнение на команда
Документация за типа/модела
За повече информация относно модела на документа и съответните отговори, моля, вижте Документацията за обектния модел и документацията на swagger за Fiscal Client (http://localhost:7678/swagger/index.html).
Връщането на грешката е еднакво за всички типове: изключението, което е било хвърлено, се връща във файла за връщане (*.error).
Тип „document“ – предаване на разписки
Съдържанието на файла в този случай е документ във формат на RetailForce (Document).
Форматът на документа може да бъде прочетен в документацията за обектния модел или в документацията на swagger на фискалната услуга (http://localhost:7678/swagger/index.html).
Отговор
FiscalResponse на съответната държава се предава във файла с резултатите.
Тип „validateDocument“ – валидиране на касова бележка
Съдържанието на файла в този случай е, както и при типа „document“, документ във формат RetailForce.
Отговор
В файла с отговора се връща списък с възможни грешки (и предупреждения) от проверката.
Тип „createClient“ – създаване на FiscalClient
Съдържанието на файла в този случай е FiscalClient във формат JSON (виж документацията).
Резултат
„OK“, когато заявката е обработена успешно.
Тип „createClientByCloud“ – създаване на FiscalClient с данни от Cloud
Съдържанието на файла е JSON документ със следната структура:
{
"CompanyIdentification":
{
"Type": 0,
"Identification": "UID"
},
"StoreNumber": "001",
"TerminalNumber": "01",
"ApiKey": "{ApiKey}",
"ApiSecret": "{ApiSecret}"
}
Връща
UniqueClientId на създадения клиент.
Тип „restoreClientByCloud“ – възстановяване на FiscalClient с данни от Cloud
Съдържанието на файла е JSON документ със следната структура:
{
"CompanyIdentification":
{
"Type": 0,
"Identification": "UID"
},
"StoreNumber": "001",
"TerminalNumber": "01",
"ApiKey": "{ApiKey}",
"ApiSecret": "{ApiSecret}"
}
Връща
UniqueClientId на възстановения клиент.
Тип „getClientId“ – търсене на client и извличане на ID-то
Налично от: V1.2.12
Съдържанието на файла е JSON документ със следната структура:
{
"CompanyIdentification":
{
"Type": 0,
"Identification": "UID"
},
"StoreNumber": "001",
"TerminalNumber": "01"
}
Връща
Уникалният идентификатор (uniqueClientId) на създадения клиент.
Тип „InitializeClient“ – инициализиране на FiscalClient
Съдържанието на файла е JSON документ със следната структура:
{
"UniqueClientId": "9607625f-1147-43a4-bf05-49319acbd9f6",
"BookDate": "2022-03-10T08:52:33.3556282Z",
"User":
{
"Id": "1",
"Caption": "Test",
"LastName": "Test",
"FirstName": "Test",
"DateOfEntry": "2022-03-10T08:52:33.3556282Z"
}
}
Посочените данни са тестови и трябва да бъдат заменени с правилните данни.
Връща
Или празен, или обект fiscalResponse за съответната държава.
Тип „CloudConnect“ – инициализиране на Cloud Connection
Съдържанието на файла е JSON документ със следната структура:
{
"UniqueClientId": "9607625f-1147-43a4-bf05-49319acbd9f6",
"ApiKey": "{ApiKey}",
"ApiSecret": "{ApiSecret}",
"PersistDays": {days} // optional, days until credentials are stored
}
Връща
„OK“, когато заявката е обработена успешно.
Тип „AuditLog“ – предаване на запис в аудиторския дневник
Съдържанието на файла е JSON обект със следната структура:
{
"RecordDateTime": "2022-03-11T15:17:57.9859527",
"UniqueClientId": "9607625f-1147-43a4-bf05-49319acbd9f6",
"LogEntryType": 200,
"Message": "OpenDrawer",
"DocumentGuid": null,
"User": null
}
Връща
Или празно, или обект „fiscalResponse“ за съответната държава (ако се изисква там).
Тип „digitalReceipt“ – изпращане на цифрова разписка
Този тип файл може да се използва за подаване на цифрова разписка.
Съдържанието на файла е JSON обект със следната структура:
{
"UniqueClientId": "d5ecc344-e37a-40c6-bed4-a6b1e60e68c8",
"ReceiptMetaData": {
"DocumentType": 0,
"CustomDocumentType": null,
"DocumentGuid": "2394fef4-2339-459a-817e-e4cd86ce23f6",
"DocumentNumber": "1",
"DocumentId": "CS_01_01_1",
"BookDate": "2021-11-17T06:45:03.8203317",
"Amount": 141.0,
"Partner": null,
"Users": null,
"ProcessId": null,
"CancelledDocumentGuid": null,
"ItemIdArray": [
"1231",
"SW4471"
],
"ItemCodeArray": null
},
"PdfDataBase64": "JVBERi0xLjcKJeLjz9MKMSAwIG9iaiAKPDwKL0NvbG9yU3Bh..."
}
Свойството „ReceiptMetaData“ е обектът ReceiptMetaData, който също трябва да се предаде при извикване чрез REST интерфейса.
In the example the stream of data in PDF format was shortened by ...
Връщане
В файла с резултата се връща линк под формата на QrCode (като string) за показване на клиента.
Конфигурация
Интерфейсът на файловата система може да бъде активиран в конфигурацията на клиента чрез задаване на стойност в полето „FiscalClient.FileSystemInterfacePath“. Ако това поле е празно (по подразбиране), файловият интерфейс не е активен.
Тази статия е преведена автоматично.
Коментари
0 коментара
Влезте в услугата, за да оставите коментар.