Ir para conteúdo
  • Cadastre-se

dev botao

Web Services Nfedownloadnf


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

Recommended Posts

  • Membros Pro

Boa tarde a todos.

 

Nos últimos dias tenho tido reclamações com o uso do web services NfeDownloadNf.

Fiz vários testes e verifiquei que o XML tem retornado com uma nova TAG <NFeZip>.

 

Alguém sabe me dizer se houve alguma alteração no retorno deste web services?

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Ademar,

 

Sim, a SEFAZ alterou a forma de retornar.

 

Veja o que fizemos com o retorno do Web Services NFeDistribuicaoDFe.

 

E tenta fazer igual para poder descompactar.

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

Boa tarde!

 

Eu acabei fazendo um quebra galho temporário para mim, mas me deparei com a seguinte situação:

 

Ao realizar o download do arquivo compactado, descompacto as tag´s NFeZip e protNFeZip e gero um novo XML de mesmo nome na pasta, substituindo o XML compactado.

 

Mas o protocolo vem em separado.. um problema q não resolvi ainda...

Os XML´s (Protocolo de autorização e XML da NFe) estão em anexo...

    dtmDados.ACBrNFe.DownloadNFe.Download.Chaves.Clear;
    dtmDados.ACBrNFe.DownloadNFe.Download.CNPJ := sCnpj;
    dtmDados.ACBrNFe.DownloadNFe.Download.Chaves.Add.chNFe := sChave;
    dtmDados.ACBrNFe.Download;

    if XMLDocument1.Active then
      XMLDocument1.Active := false;

    XMLDocument1.LoadFromXML(dtmDados.ACBrNFe.WebServices.DownloadNFe.retDownloadNFe.XML);
    XMLDocument1.Active := true;

    sXML        := XMLDocument1.XML.Text;
    sNFeZip     := StringBetween(sXML,'<NFeZip>','</NFeZip>');
    sProtNFeZip := StringBetween(sXML,'<protNFeZip>','</protNFeZip>');

    sNFeZip     := GZDecompressStr(DecodeBase64(sNFeZip));
    sProtNFeZip := GZDecompressStr(DecodeBase64(sProtNFeZip));

    // XML
    if XMLDocument1.Active then
      XMLDocument1.Active := false;

    XMLDocument1.LoadFromXML(sNFeZip);
    XMLDocument1.SaveToFile(pathNFe + '\' + sChave+'-nfe.xml');

    // Protocolo
    if XMLDocument1.Active then
      XMLDocument1.Active := false;

    XMLDocument1.LoadFromXML(sProtNFeZip);
    XMLDocument1.SaveToFile(pathNFe + '\' + sChave+'_prot.xml');

42150211974590000170550010000200111220601845_prot.xml

42150211974590000170550010000200111220601845-nfe.xml

Editado por Daniel Caus

Att.:

Daniel

Link para o comentário
Compartilhar em outros sites

Desculpe a ignorância Daniel, mas vc consegue fazer o LoadFromFile pra um arquivo e pro outro não?

 

A Propriedade XML em dtmDados.ACBrNFe.WebServices.DownloadNFe.retDownloadNFe.XML vem com ambos os dados? acho que to meio lerdo hoje haahahah

 

Qual a dificuldade em fazer um LoadFromFile do arquivo do protocolo?

Link para o comentário
Compartilhar em outros sites

Olá Tiago...

 

Como tu viu, eu gerei 2 XML´s... 

 

Pelo menos não consegui juntar os dois em somente 1 XML, talvez por falta de prática com o tXMLDocument...

 

Se colocasse o conteúdo desse 42150211974590000170550010000200111220601845_prot.xml no final do conteúdo desse 42150211974590000170550010000200111220601845-nfe.xml , acredito que ficaria correto o XML...

 

Se puder me ajudar...

Editado por Daniel Caus

Att.:

Daniel

Link para o comentário
Compartilhar em outros sites

Se eu fizer, por exemplo o XMLDocument1.LoadFromXML(sNFeZip+sProtNFeZip desse jeito, dá erro...

 

Não consegui juntar as 2 variávei que possuem os dados dos XML´s, para depois criar o arquivo com XMLDocument1.SaveToFile(pathNFe + '\' + sChave+'-nfe.xml');

Editado por Daniel Caus

Att.:

Daniel

Link para o comentário
Compartilhar em outros sites

Tiago..

 

Isso, pego do componente ACBr, estão em propriedades diferentes e compactados..

 

Em anexo, coloquei o XML gerado pelo ACBr que possui as informações compactadas, note que as tag´s NFeZip e ProtNFeZip estão separadas..

 

Descompacto elas em separado, mas depois não sei como juntar novamente no mesmo XML..

42150211974590000170550010000200101667521325-nfe.xml

Editado por Daniel Caus

Att.:

Daniel

Link para o comentário
Compartilhar em outros sites

Descobri o que ocasionava o erro ao juntar os dois...

 

Fiz o teste abaixo:

      XMLDocument1.LoadFromXML('<?xml version="1.0" encoding="UTF-8"?>'+
                               '<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10">'+
                               sNFeZip+sProtNFeZip+'</nfeProc>');

      XMLDocument1.SaveToFile(pathNFe + '\' + sChave+'-nfe.xml');

As partes compactadas não possuem o cabeçalho ('<?xml version="1.0" encoding="UTF-8"?><nfeProc mlns="http://www.portalfiscal.inf.br/nfe"versao="3.10">'+)

e nem a tag que fecha no final do arquivo (</nfeProc>)

 

Por isso dava erro, era a estrutura do XML que não estava correta.. agora está OK...

 

XML gerado em anexo... 

 

 

42150211974590000170550010000200111220601845-nfe.xml

  • Curtir 1

Att.:

Daniel

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Tiago boa noite...

 

Essa propriedade RetirarAcentos não seria apenas para os casos de envio de NF-es ou ela também funciona para retirar os acentos nos casos de recepção dos eventos?... fiz alguns testes aqui e mesmo setando como True, os eventos recebidos assim como o download, continuam ficando com acentos e caracteres especiais... etc....

 

Como vocês estão tratando esses retornos com caracteres especiais e acentos... (excluindo a função TiraAcentos, uma vez que de fato os acentos são retirados mas os caracteres especiais continuam sendo mostrados)  ?

 

Att.

 

Márcio M. Camilo 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia,

 

Gostaria de sugerir um pequeno ajuste na função TDistribuicaoDFe.TratarResposta: Boolean.

Quando é retornado uma das opções tsprocNFe ou tsprocEventoNfe os arquivos XML são salvos automaticamente. Neste ponto poderia ser observada a propriedade Salvar do componente, para verificar se os arquivos serão salvos ou não.

 

Obrigado.

Link para o comentário
Compartilhar em outros sites

Ademar na Sexta feira conversávamos aqui no fórum sobre isso, o Ítalo disse que esta é uma alteração prevista nas melhorias que estão sendo feitas no código, mas que irão sair daqui algum tempo ainda, ele me sugeriu tratar localmente essa situação, creio que no momento é a melhor saída mesmo.

 

Até mais!

Link para o comentário
Compartilhar em outros sites

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