În această secțiune veți afla cum generează sistemul fiscal o semnătură offline (în cazul unei defecțiuni a dispozitivului TSE) și ce date sunt returnate în acest caz de către FiscalClient.
Uneori, comunicarea cu TSE / TSS returnează un mesaj de eroare (defecțiune hardware, Cloud TSE nu se poate conecta la Cloud CSP etc.). În acest caz, continuați procesul de casierie ca de obicei; sistemul fiscal creează automat semnături offline și se ocupă de resemnarea automată a bonului de casă imediat ce TSE / TSS este din nou disponibil.
Există mai multe posibilități prin care sistemele fiscale pot reacționa la o defecțiune a TSE:
- eroare TSE doar la operațiunea createDocument
- Eșecul TSE doar la operațiunile „storeDocument”/„cancelDocument”
- Eșecul TSE la createDocument și la storeDocument/cancelDocument
În toate cazurile, sistemul fiscal gestionează defecțiunea TSE pentru sistemul POS, iar singurul aspect care trebuie asigurat este răspunsul fiscal corespunzător.
Eșecul TSE la createDocument
În acest caz, a eșuat doar deschiderea tranzacției pe TSE (createDocument).
Sistemul fiscal returnează un răspuns fiscal special:
{
"FiscalCountry": 0,
"FiscalDocumentNumber": "-99",
"FiscalDocumentStartTime": 0,
"ProcessStartTime": 0,
"ErrorDescription": "Tse connection error.",
"CashRegisterId":"3656-1",
"Signature": "",
"UserMessage": null,
"PrintMessage": "",
"RequestTime": "2021-09-07T07:07:09.5139728+02:00",
"RequestCompletionTime": "2021-09-07T07:07:09.7981746+02:00",
"QrCode": "",
"RetailForceReceiptId": "0wxyz0001",
"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": "...", -- certificate data
"FiscalDocumentRevision": 0,
}
}Procesul pentru sistemul POS este același ca de obicei. Trebuie doar să trimiteți valorile stocate ale fiscalResponse („fiscalDocumentNumber”: „-99”, „fiscalDocumentStartTime”: {așa cum a fost returnat}, „fiscalDocumentRevision”: 0) la storeDocument. Sistemul fiscal se ocupă singur de crearea automată a tranzacției înainte de stocarea documentului (semnare) și va răspunde cu un răspuns fiscal obișnuit la storeDocument.
TSE la „storeDocument”/„cancelDocument”
În acest caz, sistemul fiscal va returna un răspuns fiscal de eșec:
{
"FiscalCountry": 0,
"FiscalDocumentNumber": "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",
"QrCode": "",
"RetailForceReceiptId": "0wxyz0001",
"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": "...", -- certificate data
"FiscalDocumentRevision": 0,
}
}La sfârșitul eșecului TSE, sistemul fiscal resemnează automat toate chitanțele generate și stocate în timpul întreruperii. Sistemul POS nu trebuie să întreprindă nicio acțiune în acest moment.
Eșec TSE la createDocument și storeDocument/cancelDocument
În cazul acestor eșecuri TSE, procesul de trimitere a datelor către sistemul fiscal rămâne același, software-ul POS nu trebuie adaptat la această situație, doar răspunsul fiscal diferă de un răspuns obișnuit de semnare.
{
"FiscalCountry": 0,
"FiscalDocumentNumber": "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",
"QrCode": "",
"RetailForceReceiptId": "0wxyz0001",
"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": "...", -- certificate data
"FiscalDocumentRevision": 0,
}
}La sfârșitul defecțiunii TSE, sistemul fiscal resemnează automat toate bonurile generate și stocate în timpul întreruperii. Sistemul POS nu trebuie să facă nimic în acest moment.
Acest articol a fost tradus automat.
Comentarii
0 comentarii
Vă rugăm să vă autentificați pentru a lăsa un comentariu.