U ovom odjeljku naučit ćete kako fiskalni sistem generiše offline potpis (kvar TSE uređaja) i koji se podaci u tom slučaju vraćaju od strane FiscalClient-a.
Ponekad komunikacija sa TSE / TSS-om vrati poruku o grešci (kvar hardvera, cloud-TSE se ne može povezati sa cloud-CSP-om, ...). U tom slučaju nastavite sa procesom na kasi kao i obično, fiskalni sistem automatski kreira offline potpise i brine se o automatskom ponovnom potpisivanju računa čim TSE / TSS ponovo bude dostupan.
Postoji nekoliko mogućnosti na koje fiskalni sistem mora reagovati u slučaju greške TSE-a:
- neuspjeh TSE-a samo pri kreiranju dokumenta
- neuspjeh TSE-a samo pri pohrani dokumenta/otkazivanju dokumenta
- tse greška pri kreiranju dokumenta i pohrani/otkaži dokument
U svim slučajevima fiskalni sistem obrađuje grešku TSE-a za POS sistem i potrebno je podržati samo različiti fiskalni odgovor.
Neuspjeh TSE pri kreiranju dokumenta
U ovom slučaju samo je otvaranje transakcije na TSE-u (createDocument) neuspjelo.
Fiskalni sistem vraća poseban fiskalni odgovor:
{
"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,
}
}Proces za POS sistem je isti kao i obično. Samo pošaljite pohranjene vrijednosti fiskalnog odgovora ("FiscalDocumentNumber": "-99", "FiscalDocumentStartTime": {kako je vraćeno}, "FiscalDocumentRevision": 0) pri pohrani dokumenta. Sam fiskalni sistem brine o automatskom kreiranju transakcije prije pohrane dokumenta (potpisivanja) i odgovorit će standardnim fiskalnim odgovorom pri pohrani dokumenta.
Tse greška na storeDocument/cancelDocument
U ovom slučaju fiskalni sistem će vratiti greškom generisanu fiskalnu potvrdu:
{
"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,
}
}Na kraju TSE greške, fiskalni sistem automatski ponovo potpisuje sve račune koji su generisani i pohranjeni tokom prekida. POS sistem u ovom trenutku ne mora ništa raditi.
Tse greška pri createDocument i storeDocument/cancelDocument
U slučaju ovih TSE grešaka, proces slanja podataka fiskalnom sistemu ostaje isti, POS softver se ne mora prilagođavati ovoj situaciji, jedino je fiskalni odgovor drugačiji od uobičajenog odgovora za potpisivanje.
{
"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,
}
}Na kraju TSE greške, fiskalni sistem automatski ponovo potpisuje sve račune generisane i pohranjene tokom prekida. POS sistem u ovom trenutku ne mora ništa raditi.
Ovaj članak je automatski preveden.
Comments
0 comments
Please sign in to leave a comment.