V této části se dozvíte, jak fiskální systém generuje offline podpis (v případě selhání zařízení TSE) a jaká data v tomto případě vrací FiscalClient.
Někdy komunikace se zařízením TSE / TSS vrátí chybovou zprávu (selhání hardwaru, Cloud-TSE se nemůže připojit k Cloud-CSP, ...). V takovém případě pokračujte v pokladním procesu jako obvykle; fiskální systém automaticky vytvoří offline podpisy a postará se o automatické opětovné podepsání účtenky, jakmile bude zařízení TSE / TSS opět k dispozici.
Existuje několik možností, jak může fiskální systém reagovat na selhání TSE:
- selhání TSE pouze při createDocument
- selhání TSE pouze při operacích `storeDocument`/`cancelDocument`
- selhání TSE při createDocument i storeDocument/cancelDocument
Ve všech případech fiskální systém řeší selhání TSE za pokladní systém a je třeba podporovat pouze různé fiskální reakce.
Selhání TSE při createDocument
V tomto případě selhalo pouze otevření transakce na TSE (createDocument).
Fiskální systém vrací speciální fiskální odpověď:
{
"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,
}
}Postup pro POS systém je stejný jako obvykle. Stačí při volání funkce `storeDocument` odeslat uložené hodnoty fiskální odpovědi („FiscalDocumentNumber“: „-99“, „FiscalDocumentStartTime“: {jak bylo vráceno}, „FiscalDocumentRevision“: 0). Fiskální systém sám zajistí automatické vytvoření transakce před uložením dokladu (podpisem) a při volání funkce `storeDocument` odpoví běžnou fiskální odpovědí.
Chyba při volání storeDocument/cancelDocument
V tomto případě fiskální systém vrátí fiskální odpověď o selhání:
{
"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,
}
}Po skončení výpadku TSE fiskální systém automaticky znovu podepíše všechny účtenky vygenerované a uložené během výpadku. Pokladní systém v tomto okamžiku nemusí provádět žádné akce.
Selhání TSE při voláních createDocument a storeDocument/cancelDocument
V případě těchto selhání TSE zůstává proces odesílání dat do fiskálního systému stejný, software POS nemusí být na tuto situaci přizpůsoben, liší se pouze fiskální odpověď od běžné podpisové odpovědi.
{
"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,
}
}Po skončení poruchy TSE fiskální systém automaticky znovu podepíše všechny účtenky vygenerované a uložené během výpadku. Pokladní systém v tomto okamžiku nemusí provádět žádné akce.
Tento článek byl přeložen automaticky.
Komentáře
0 komentářů
Prosím přihlaste se, abyste mohli napsat komentář.