Ir para conteúdo
  • Cadastre-se

dev botao

Assinatura difere do calculado


  • Este tópico foi criado há 3088 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Olá a todos,

Estou seguindo a dica em http://www.projetoacbr.com.br/forum/topic/24169-tratamento-para-envio-de-nfc-e-offline/ para tratamento de erros de conexão nas minhas NFC-es.

Ao detectar problemas na conexão, faço a alteração da nota para OFFLINE de acordo com a dica do tópico, segue exemplo abaixo:

dtm_banco.ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.tpEmis :=teOffLine ;
dtm_banco.ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.xJust := 'Problemas técnicos no envio do cupom eletrônico';
dtm_banco.ACBrNFe1.NotasFiscais.Items[0].NFe.Ide.dhCont := now;    
dtm_banco.ACBrNFe1.NotasFiscais.GerarNFe;
dtm_banco.ACBrNFe1.NotasFiscais.Assinar;
dtm_banco.ACBrNFe1.NotasFiscais.Validar;

Com isso eu imprimo e tudo OK. Só que ao fazer isso quando vou tentar enviar ela para a SEFAZ, sempre recebo a rejeição "Assinatura difere do calculado".

Conforme citado, apenas mudo os campos tpEmiss, xJust e dhCont, ai Gero a NFC-e novamente, assino e valido. Se ao invés de seguir a dica, eu apagar a nota toda (dtm_banco.ACBrNFe1.NotasFiscais.Clear) e refazê-la, informando esses três campos como OFFLINE (tpEmiss, xJust e dhCont) eu não tenho problemas.

Ele envia posteriormente para a SEFAZ sem rejeição nenhuma. Mas eu tenho que refazer o XML todo... Porque isso acontece?

Desde já agradeço a atenção

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia,

Da forma que você esta fazendo é como se altera-se o XML diretamente.

Há necessidade de gerar novamente todo o XML com os 3 campos sitados por você alterados para depois realizar uma nova assinatura.

Sendo assim há necessidade de executar o Clear.

Uma dica não precisa executar o GerarNFe, pois o Assinar já faz isso, ou seja, ele gera o XML da NF-e.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Olá Italo...

Primeiro, em relação a sua dica, as que eu já gerei usando o comando GerarNFe, tem problema?

Segundo, no envio Normal eu não uso o Assinar e nem Valida, só uso o comando ACBrNFe1.Enviar(lote,False,True)... Mas também uso o GerarNFe antes... Preciso do GerarNFe nesse caso?

Terceiro, então o código com a mudança da nota de online para offline em caso de problemas de internet, da maneira como o magnosystem escreveu no tópico que ele abriu (http://www.projetoacbr.com.br/forum/topic/24169-tratamento-para-envio-de-nfc-e-offline/) não funciona? Pergunto isso pois da maneira que ele fez mudando apenas as 3 linhas é muito mais simples e também facilita na parte do cstat 539 que ele comenta, onde envia a nota e o retorno não vem, ocorre muito comigo, aí tenho que desfazer tudo e gerar ela como online dinovo.

Desde já agradeço a atenção

Editado por doidopb
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia,

O que foi gerado e autorizado pela SEFAZ você não tem que se preocupar.

Lembre-se que o método Assinar executa internamente o Gerar, logo não há necessidade de executar o gerar, pois estaria executando duas vezes.

O Validar checa se o XML esta assinado se não estiver o executa, logo se desejar pode executar o Validar diretamente.

O Enviar por sua vez executa o Assinar e o Validar internamente, sendo assim podemos simplesmente executar o Enviar.

Entenda o seguinte, se o XML já foi gerado e assinado para o envio normal, caso haja necessidade de mudar para Offline (no caso da NFC-e) devemos reconfigurar o componente bem como mudar as 3 propriedades que você apresentou nas postagens anteriores.

Como o tipo de emissão faz parte da chave de acesso e os 3 campos (tpEmis, xJust e dhCont) fazem parte do XML consequentemente os seus conteúdos são levados em consideração no calculo do DigestValue incluído na assinatura.

Outra coisa, em uma emissão normal os campos xJust e dhCont não existem no XML. Por outro lado em uma emissão Offline eles existem.

Perante tudo o que foi dito conclui-se que devemos gerar novamente o XML para que os campos xJust e dhCont bem como o novo valor de tpEmis estejam presentes no XML e consequentemente devemos realizar uma nova assinatura para esta esta fique condizente com o novo conteúdo.

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.