Envio dos Arquivos CAT-52 - Está morta a galinha !!!
Enviado: 01 Fev 2008 13:48
Amigos, depois de pelejar aqui com este tema que nos tem tirado o sono, segue o caminho por mim percorrido, até obter sucesso no envio dos arquivos.
Um cliente meu usa uma ECF-IF Schalter 2.04, (museuzão mesmo !!!).
Fiz adaptações no PDV, para que a cada documento impresso, fosse armazenado todos os dados, (penso que até no caso das térmicas, seria interessante este modo), facilitando assim, a montagem dos arquivos. É instantanea.
Ao ser executada a redução Z, é gerado então o arquivo, sem a assinatura digital. Neste caso especifico, fiz uma outra rotina para assinar os arquivos numa maquina Windows, uma vez que o OpenSSL não roda em DOS. Mas no caso do PDV rodar sobre o Windows, esta rotina de assinatura pode estar incluida no proprio PDV.
Como já foi postado em outros tópicos, o utilitário para gerar as chaves e a assinatura digital, é mesmo o OpenSSL. Simplesmente funciona.
Notem que:
Esta ultima linha gera a assinatura digital;
O arquivo EAD.TXT mencionado é quem vai guardar esta assinatura;
O handle mencionado (ccbuffer) é o arquivo gerado pela aplicação, com todos os registros, menos é claro a Assinatura Digital. Não precisa nem dizer que este handle (arquivo) é diferente a cada redução Z né ?
Feito isso, deverá ser lido o conteudo do EAD.TXT, referente a assinatura, e escrito no final do arquivo de informações.
Feito isso o arquivo está pronto para ser enviado.
Conclusões:
Procurem prestar bastante atenção nas prescrições da CAT60.
Formato dos campos, numérico ou alfanumerico, alinhamentos, tamanho, e não pode esquecer que ao final de cada registro tem que colocar CHR(13)+CHR(10)
Menciono os pontos que continham erros em minha aplicação:
Marca e Modelo do ECF, tem que estar de acordo com o anexo III da CAT60.
Código dos totalizadores fiscais do registro E13, também devem coincidir com os da CAT60.
Corrigidas estas falhas, consegui enviar modo teste, dez arquivos. Todos enviados com sucesso.
Espero que com estas dicas, os colegas que se vêem neste dilema, consigam obter exito. É o que desejo.
Abraços.
Edson
Um cliente meu usa uma ECF-IF Schalter 2.04, (museuzão mesmo !!!).
Fiz adaptações no PDV, para que a cada documento impresso, fosse armazenado todos os dados, (penso que até no caso das térmicas, seria interessante este modo), facilitando assim, a montagem dos arquivos. É instantanea.
Ao ser executada a redução Z, é gerado então o arquivo, sem a assinatura digital. Neste caso especifico, fiz uma outra rotina para assinar os arquivos numa maquina Windows, uma vez que o OpenSSL não roda em DOS. Mas no caso do PDV rodar sobre o Windows, esta rotina de assinatura pode estar incluida no proprio PDV.
Como já foi postado em outros tópicos, o utilitário para gerar as chaves e a assinatura digital, é mesmo o OpenSSL. Simplesmente funciona.
Código: Selecionar todos
Function Chaves
//run OPENSSL genrsa -out MYKEY.PEM 1024 // Esta linha é executada uma unica vez para ser gerada a sua chave PRIVADA
//run OPENSSL rsa -in MYKEY.PEM -pubout -out PUBKEY.PEM // Esta linha deverá ser também executada uma unica vez para gerar uma chave PUBLICA, baseada na sua chave PRIVADA.
run OPENSSL dgst -md5 -sign MYKEY.PEM -out EAD.TXT -hex \alamino\cat52\&ccbuffer // Esta linha sim, deverá ser executada cada vez que for gerado um arquivoEsta ultima linha gera a assinatura digital;
O arquivo EAD.TXT mencionado é quem vai guardar esta assinatura;
O handle mencionado (ccbuffer) é o arquivo gerado pela aplicação, com todos os registros, menos é claro a Assinatura Digital. Não precisa nem dizer que este handle (arquivo) é diferente a cada redução Z né ?
Feito isso, deverá ser lido o conteudo do EAD.TXT, referente a assinatura, e escrito no final do arquivo de informações.
Feito isso o arquivo está pronto para ser enviado.
Conclusões:
Procurem prestar bastante atenção nas prescrições da CAT60.
Formato dos campos, numérico ou alfanumerico, alinhamentos, tamanho, e não pode esquecer que ao final de cada registro tem que colocar CHR(13)+CHR(10)
Menciono os pontos que continham erros em minha aplicação:
Marca e Modelo do ECF, tem que estar de acordo com o anexo III da CAT60.
Código dos totalizadores fiscais do registro E13, também devem coincidir com os da CAT60.
Corrigidas estas falhas, consegui enviar modo teste, dez arquivos. Todos enviados com sucesso.
Espero que com estas dicas, os colegas que se vêem neste dilema, consigam obter exito. É o que desejo.
Abraços.
Edson