Nesta secção, irá aprender como o sistema fiscal gera uma assinatura offline (falha do dispositivo TSE) e quais os dados que são devolvidos, neste caso, pelo FiscalClient.
Por vezes, a comunicação com o TSE/TSS devolve uma mensagem de falha (falha de hardware, o Cloud TSE não consegue estabelecer ligação ao Cloud CSP, etc.). Neste caso, prossiga com o processo de caixa como habitualmente; o sistema fiscal cria automaticamente assinaturas offline e encarrega-se da reassinatura automática do recibo assim que o TSE/TSS estiver novamente disponível.
Existem várias possibilidades de reação do sistema fiscal em caso de falha do TSE:
- falha do TSE apenas na operação «createDocument»
- Falha do TSE apenas em «storeDocument»/«cancelDocument»
- Falha do TSE em «createDocument» e em «storeDocument»/«cancelDocument»
Em todos os casos, o sistema fiscal gere a falha do TSE para o sistema de PDV, devendo apenas ser suportada a resposta fiscal específica.
Falha do TSE na função «createDocument»
Neste caso, apenas a abertura da transação no TSE falhou (createDocument).
O sistema fiscal está a devolver uma resposta fiscal especial:
{
"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,
}
}O processo para o sistema POS é o mesmo de sempre. Basta enviar os valores armazenados da «fiscalResponse» («fiscalDocumentNumber»: «-99», «fiscalDocumentStartTime»: {conforme devolvido}, «fiscalDocumentRevision»: 0) no «storeDocument». O próprio sistema fiscal encarrega-se de criar automaticamente a transação antes do armazenamento do documento (assinatura) e responderá com uma resposta fiscal normal no «storeDocument».
Falha na TSE/cancelDocument
Neste caso, o sistema fiscal devolverá uma resposta fiscal de falha:
{
"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,
}
}No final da falha do TSE, o sistema fiscal volta a assinar automaticamente todos os recibos gerados e armazenados durante a interrupção. O sistema POS não tem de realizar qualquer ação nesta fase.
Falha do TSE em «createDocument» e «storeDocument»/«cancelDocument»
No caso destas falhas do TSE, o processo de envio de dados para o sistema fiscal permanece o mesmo; o software do POS não necessita de ser adaptado a esta situação, sendo apenas a resposta fiscal diferente de uma resposta de assinatura normal.
{
"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,
}
}No final da falha do TSE, o sistema fiscal volta a assinar automaticamente todos os recibos gerados e armazenados durante a interrupção. O sistema POS não tem de tomar qualquer medida nesta fase.
Este artigo foi traduzido automaticamente.
Comentários
0 comentários
iniciar sessão para comentar.