Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Boa tarde!!

esta acontecendo com frequencia o erro de digestvalue em meus clientes. Pelo que li e entendi isso ocorre quando assino novamente a nova e tento envia-la novamente usando o loadfromfile, só que não estou utilizando este comando. 

segue abaixo minha rotina de envio da NFe.

GeraNota;

  try
    ACBrNFe1.Enviar(StrToint(edtNf.Text), TRUE);
  except
    if ACBrNFe1.NotasFiscais.Items[0].Alertas <> '' then
      ShowMessage(ACBrNFe1.NotasFiscais.Items[0].Alertas)
    else
    begin
      While true do
      begin
        ShowMessage('Erro: '+IntToStr(ACBrNFe1.WebServices.Retorno.cStat)+'-'+ACBrNFe1.WebServices.Retorno.xmotivo);

        if ACBrNFe1.WebServices.Retorno.cStat = 204 then
        begin
          i := Pos('[nRec:',ACBrNFe1.WebServices.Retorno.xmotivo);
          frmImpNF.tabVendaNrRecibo.value:=copy(ACBrNFe1.WebServices.Retorno.xmotivo,i+6,15);
        end;

       //guardo os campos na tabela

       if frmImpNF.tabVendaNrRecibo.AsString = '' then
          frmImpNF.tabVendaNrRecibo.value:=ACBrNFe1.WebServices.Retorno.Recibo;
        frmImpNF.tabVendaChaveNFe.value:=AcbrNFe1.WebServices.Retorno.ChaveNFe;
        frmImpNF.tabVendaNumeroLote.value:=edtNf.Text;
        

        // Consulta  NFe, pra pegar o protocolo
        ACBrNFe1.Consultar;

        if ACBrNFe1.WebServices.Consulta.cStat = 100 then
        begin
          frmImpNF.tabVendaNrProtocolo.value:=ACBrNFe1.WebServices.Consulta.Protocolo;

          //salvar o arquivo -PRocNFE.xml
          NomeArq := ACBrNFe1.NotasFiscais.Items[0].NomeArq;
          if pos(UpperCase('-nfe.xml'),UpperCase(NomeArq)) > 0 then
             NomeArq := StringReplace(NomeArq,'-nfe.xml','-procNfe.xml',[rfIgnoreCase]);

          NomeArq := ExtractFileName(NomeArq);
          ACBrNFe1.NotasFiscais.Items[0].GravarXML(NomeArq);

          // Gerar PDF
          ACBrNFe1.NotasFiscais.ImprimirPDF;

          // Gerar DANFE
          ACBrNFe1.NotasFiscais.Imprimir;

          BReak;
        end;
                                             
        if MessageDlg('Erro no envio da NFe. Consultar Novamente?',mtConfirmation,[MbYes,mbNo],0)=mrNo then
          Break;
      end;
    end;

    // salva o arquivo XML na pasta log
    NomeArq := ACBrNFe1.NotasFiscais.Items[0].NomeArq;

    NomeArq := ExtractFileName(NomeArq);
    ACBrNFe1.NotasFiscais.Items[0].GravarXML(NomeArq);
  end;

Editado por alexandre.abaco
Não havia terminado de escrever a pergunta e finalizei indevidamente
  • Membros Pro
Postado

Olá @Juliomar Marchetti bom dia!

Andou acontecendo este problema comigo também, o problema é muito esporádico, acontece em uma NF ou outra e temos clientes que, apesar de emitirem muitas notas fiscais, o problema não acontece. Não houve atualização do sistema recentemente.

Eu peguei o XML que está salvo no banco de dados e o XML no site da SEFAZ, utilizei um aplicativo para comparação e só encontrei diferenças que, acredito eu, não invalidam o DigestValue.

Se você tiver alguma dica seria muito bem-vinda.

 

35160208957311000155550000001983351450305138-nfe.xml

35160208957311000155550000001983351450305138-nfe-banco.xml

Gilson do Carmo
WindSoft Sistemas

Postado (editado)

Tambem passo por essas situações algumas vezes, mas avaliando sei caso comparei seus XML e notei que o fechamento de algumas tags possuem espaco,

ex.:

"<cEAN />",

"<cEANTrib />",

"<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />"

"<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />"

"<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />"

já a tag "DigestValue" estão idênticos

 

No xml do banco está com o padrao UTF-8 e no outro não,

Porem no xml comum tem a informação de autorização <infProt>

 

Você utilizou a mesma aplicação para gerar os dois XML?

Segue anexo dos seus XML com algumas quebras de linha identificado os exemplos da comparação.

35160208957311000155550000001983351450305138-nfe.xml

35160208957311000155550000001983351450305138-nfe-banco.xml

Editado por theiller
  • 2 semanas depois ...
  • Membros Pro
Postado

No meu caso era porque a NF estava sendo gerada em uma máquina e transmitida em outra, e as máquinas estavam com fusos horários diferentes.

Eu ajustei o código para que as NFs não fossem geradas novamente ao transmitir, assim o problema foi corrigido, ou seja, o problema estava na minha aplicação mesmo e não no ACBr

 

 

  • Curtir 1

Gilson do Carmo
WindSoft Sistemas

Postado

Gilson,

 

Obrigado pelo retorno. A principio não é o nosso caso. 

Mas hoje aconteceu o problema em dois clientes, um em SC outro em MT, e ambos estavam com problema de instabilidade da internet.

E agora a pouco aconteceu o mesmo problema com o cliente de SC.

Não sei se na versão da Trunk tinha essa opção de verificar ou não o DigestValue.

Se eu consulto com a versão antiga, gerada com a Trunk, ele não da erro e retorna o XML tranquilo, e nesse caso atualizo o banco de dados,,,etc,,,

Ja com a versão gerada pela TRUNK2 o erro persiste, pois esta setado NFEletronica.Configuracoes.Geral.ValidarDigest  := True;

Realmente não sei porque o problema ocorre.

Vou verificar como é calculado, talvez descubro o problema.

 

Dercide.

  • Curtir 1
  • 1 mês depois ...
  • Moderadores
Postado

Esse tipo de problema por exemplo pode ocorrer por informar no campo dhEmi uma data diferente da que foi enviada no xml!

ou dados por exemplo valor unitário com diferença no arredondamento e assim vai dar a exceção pois não condiz com o valor de todas as tags originais!

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.

The popup will be closed in 10 segundos...