Ir para conteúdo
  • Cadastre-se

dev botao

erro de duplicidade no cte


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

Recommended Posts

provavelmente por problema na internet estou com alguns ctes sem a chave, protocolo e recibo, quando tento enviar novamente retorna erro de duplicidade, claro a sefaz ja recebeu, porem estou fazendo o seguinte:

    ACBrCTe.Conhecimentos.Clear;
    ACBrCTe.Conhecimentos.LoadFromFile(DiretorioXML+Trim(DM1Fretes.CdsFretesCTECHA.Value)+'-cte.xml');
    ACBrCTe.Consultar;

    if (ACBrCTe.WebServices.Consulta.cStat = 100) then
      showmessage('Conhecimento Autorizado !');
  end;

mas esta retornando o seguinte erro

Digest do documento (chave) nao confere, e nestes casos estou tendo que baixar o xml do sefaz, como faço pra resolver pelo sistema, existe alguma maneira diferente de autorizar o xml ?

 

abs e obrigado

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Felipe,

Tente dessa outra forma:

 ACBrCTe.Conhecimentos.Clear;
 ACBrCTe.Conhecimentos.LoadFromFile(DiretorioXML+Trim(DM1Fretes.CdsFretesCTECHA.Value)+'-cte.xml', False);
 ACBrCTe.Consultar;

Simplesmente acrescentei o valor False como sendo o segundo parâmetro do LoadFromFile, isso faz com que o XML seja apenas carregado e não gerado novamente.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Felipe,

O XML que você esta carregando com o LoadFromFile esta com a assinatura digital?

Se não estiver, tem que carregar ele, depois executar o método Assinar e por fim executar o Consultar.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

bom dia doni obrigado

é isso que estamos fazendo porem queria uma maneira de resolver pelo proprio sistema, o que acontece é que a chave nao retorna pro sistema por alguma problema na internet, antes o simples fato de consultar o cte resolvia o problema mas agora fica retornando esse erro.

 

abs

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Felipe,

O erro de divergência de DigestValue só ocorre quando o XML é gerado e assinado novamente com algum dado alterado.

Vamos a um exemplo:

O XML foi gerado, assinado e enviado para a SEFAZ, esta por sua vez recebeu processou, gerou o protocolo de autorização, mas por algum motivo na conexão o protocolo não foi retornado.

Quando usamos o LoadFromFile sem o segundo parâmetro, ocorre a leitura dos dados que estão no XML, mas um novo é gerado e assinado.

Ao realizar a leitura e uma nova geração, pode ocorrer a alteração de alguma informação, por exemplo conversão de algum carácter especial, isso já é o suficiente para que um novo DigestValue seja gerado ao ser realizada a assinatura.

Ao executar o Método Consultar, o componente compara o DigestValue do XML com o que vem com o protocolo, se for diferente o erro é apresentado.

Se isso esta ocorrendo é interessante baixar o XML do site e passar um pente fino por todas as TAGs em busca da informação diferente.

Desta forma podemos descobrir se existe algum Bug no componente.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Doni,

Para efetuar o cancelamento de um CT-e não há necessidade do XML do mesmo, uma vez que o cancelamento é um evento.

No que diz respeito a consulta o XML é interessante para que o componente seja capaz de atualizar o mesmo caso este não tenha o protocolo de autorização.

Caso o XML não seja carregado ao efetuar a consulta, a atualização não será realizada, apenas o retorno com o status atual do CT-e será salvo em disco.

A mensagem de URL não definida para o TCTeConsulta esta muito estranho.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo muito obrigado pela resposta, o que esta acontecendo é exatamente como vc descreveu, enviamos o cte o sefaz aceita porem nao me retorna o protocolo, faço o processo que mencionei para acertar o xml, estou enviando o xml baixado do sefaz e o xml q tentei "consultar"

 

abs

 

35160707640854000181570010000123041000123042-cteOriginal.xml

35160707640854000181570010000123041000123042-cteSefaz.xml

Link para o comentário
Compartilhar em outros sites

perfeito Italo a hora esta diferente e sempre sera pq ela faz o cte e depois de alguns minutos provavelmente vai tentar fazer a CONSULTA, e eu estava usando o NOW na propriedade, alterei para pegar a data e hora do banco de dados do momento de geração do cte.

vou testar e retorno, mt obrigado Italo

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Felipe,

Quando enviamos o CT-e e por algum motivo não temos o retorno da SEFAZ acusando que o mesmo foi autorizado, o XML do CT-e esta apenas assinado mas sem o protocolo, correto?

Pois bem, o que temos que fazer?

Carregar o XML e executar o método Consultar.

Para carregar devemos usar o LoadFromFile da seguinte forma:

LoadFromFile( sNomeCompletoXML, False );

Note que estou informando um segundo parâmetro (valor False), isso faz com que os dados que estão no XML sejam preservados.

Consequentemente o DigestValue da assinatura não será alterado.

Espero ter ajudado.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2980 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.