W niniejszej sekcji dowiedzą się Państwo, w jaki sposób system fiskalny generuje podpis offline (w przypadku awarii urządzenia TSE) oraz jakie dane są w takiej sytuacji zwracane przez moduł FiscalClient.
Czasami komunikacja z urządzeniem TSE / TSS zwraca komunikat o błędzie (awaria sprzętu, Cloud TSE nie może połączyć się z Cloud CSP itp.). W takim przypadku należy kontynuować proces kasowy jak zwykle; system fiskalny automatycznie tworzy podpisy offline i dba o automatyczne ponowne podpisanie paragonu, gdy tylko urządzenie TSE / TSS będzie ponownie dostępne.
Istnieje kilka możliwości reakcji systemu fiskalnego na awarię urządzenia TSE:
- Awaria TSE występująca wyłącznie podczas operacji createDocument
- Awaria TSE występuje wyłącznie podczas operacji storeDocument/cancelDocument
- Awaria TSE podczas operacji createDocument oraz storeDocument/cancelDocument
We wszystkich przypadkach system fiskalny obsługuje awarię TSE w imieniu systemu POS, a wymagana jest jedynie obsługa różnych reakcji fiskalnych.
Awaria TSE podczas operacji createDocument
W tym przypadku nie powiodło się jedynie otwarcie transakcji w systemie TSE (createDocument).
System fiskalny zwraca specjalną odpowiedź fiskalną:
{
"FiscalCountry":0,
"FiscalisationDocumentNumber": -99,
"FiscalisationDocumentRevision":0,
"FiscalDocumentStartTime":0,
"ProcessStartTime":0,
"ErrorDescription":"Tse connection error.",
"CashRegisterId":"3656-1",
"Signature":"Tse not connected.",
"UserMessage":"Tse not connected.",
"PrintMessage":"TSE ausgefallen.",
"RequestTime":"2021-09-07T07:07:09.5139728+02:00",
"RequestCompletionTime":"2021-09-07T07:07:09.7981746+02:00",
"AdditionalFields":
{
"QrCodeDataString":"", -- empty
"TransactionStartTime":0, -- zero
"TransactionEndTime":1630991229,
"ProcessData":"", -- empty
"ProcessType":"Kassenbeleg-V1",
"TseSerial":"7eeda69cb6fa8e78970150675ad03716fad85394447d6947d7a863b6cb6e5b3c",
"TseTimeFormat":"unixTime",
"TseHashAlgorithm":"ecdsa-plain-SHA256",
"TsePublicKey":"", -- empty
"TseSignatureCounter":0, -- zero
"TseCertificate":"Tse not connected."
}
}
Procedura dla systemu POS przebiega tak samo jak zwykle. Wystarczy przesłać zapisane wartości odpowiedzi fiskalnej (wraz z numerem dokumentu fiskalnego w przypadku błędu połączenia z TSE) podczas operacji storeDocument. Sam system fiskalny automatycznie tworzy transakcję przed zapisaniem dokumentu (podpisaniem) i zwraca standardową odpowiedź fiskalną podczas operacji storeDocument.
Błąd TSE podczas operacji storeDocument/cancelDocument
W tym przypadku system fiskalny zwróci komunikat o niepowodzeniu:
{
"FiscalCountry":0,
"FiscalisationDocumentNumber":0,
"FiscalisationDocumentRevision":0,
"FiscalDocumentStartTime":0,
"ProcessStartTime":0,
"ErrorDescription":"Tse connection error.",
"CashRegisterId":"3656-1",
"Signature":"Tse not connected.",
"UserMessage":"Tse not connected.",
"PrintMessage":"TSE ausgefallen.",
"RequestTime":"2021-09-07T07:07:09.5139728+02:00",
"RequestCompletionTime":"2021-09-07T07:07:09.7981746+02:00",
"AdditionalFields":
{
"QrCodeDataString":"", -- empty
"TransactionStartTime":0, -- zero
"TransactionEndTime":1630991229,
"ProcessData":"", -- empty
"ProcessType":"Kassenbeleg-V1",
"TseSerial":"7eeda69cb6fa8e78970150675ad03716fad85394447d6947d7a863b6cb6e5b3c",
"TseTimeFormat":"unixTime",
"TseHashAlgorithm":"ecdsa-plain-SHA256",
"TsePublicKey":"", -- empty
"TseSignatureCounter":0, -- zero
"TseCertificate":"Tse not connected."
}
}
Po zakończeniu awarii TSE system fiskalny automatycznie ponownie podpisuje wszystkie paragony wygenerowane i zapisane w trakcie przerwy w działaniu. System POS nie musi w tym momencie podejmować żadnych działań.
Awaria TSE podczas operacji createDocument oraz storeDocument/cancelDocument
W przypadku tych awarii TSE proces wysyłania danych do systemu fiskalnego pozostaje taki sam; oprogramowanie POS nie wymaga dostosowania do tej sytuacji, a jedyną różnicą w stosunku do standardowej odpowiedzi podpisowej jest sama odpowiedź fiskalna.
{
"FiscalCountry":0,
"FiscalisationDocumentNumber":0,
"FiscalisationDocumentRevision":0,
"FiscalDocumentStartTime":0,
"ProcessStartTime":0,
"ErrorDescription":"Tse connection error.",
"CashRegisterId":"3656-1",
"Signature":"Tse not connected.",
"UserMessage":"Tse not connected.",
"PrintMessage":"TSE ausgefallen.",
"RequestTime":"2021-09-07T07:07:09.5139728+02:00",
"RequestCompletionTime":"2021-09-07T07:07:09.7981746+02:00",
"AdditionalFields":
{
"QrCodeDataString":"", -- empty
"TransactionStartTime":0, -- zero
"TransactionEndTime":1630991229,
"ProcessData":"", -- empty
"ProcessType":"Kassenbeleg-V1",
"TseSerial":"7eeda69cb6fa8e78970150675ad03716fad85394447d6947d7a863b6cb6e5b3c",
"TseTimeFormat":"unixTime",
"TseHashAlgorithm":"ecdsa-plain-SHA256",
"TsePublicKey":"", -- empty
"TseSignatureCounter":0, -- zero
"TseCertificate":"Tse not connected."
}
}
Po zakończeniu awarii modułu TSE system fiskalny automatycznie ponownie podpisuje wszystkie paragony wygenerowane i zapisane w trakcie przerwy w działaniu. System POS nie musi w tym momencie podejmować żadnych działań.
Ten artykuł został przetłumaczony automatycznie.
Komentarze
Komentarze: 0
Zaloguj się, aby dodać komentarz.