ZeusAutomacao/DFe.NET

SEFAZ MS retorna xmlns (namespace) na classe protNFe

Closed this issue · 2 comments

Boa tarde

Hoje pela manha a sefaz MS começou a retornar um XML com namespace na classe protNFe e infProt o que faz com o que o Zeus/xmlDeserializer não consiga deserializar a classe, o que trouxe vários efeitos negativos, pelo menos pra nós aqui.

Exemplo: (Obtido pela propriedade RetornoCompletoStr do retorno do envio)

ANTES (2023-10-24T07:03:27-04:00):
<protNFe versao="4.00\"> <infProt Id="ID150230352761307\">

DEPOIS (2023-10-24T07:18:20-04:00):
<protNFe xmlns="http://www.w3.org/2000/09/xmldsig#\" versao="4.00\"> <infProt xmlns="http://www.portalfiscal.inf.br/nfe\" Id="ID150230352775076\">

Outros estados a principio seguem funcionando normalmente (com a classe sem namespace)...

Estamos tentando fazer uma deserialização manual, por fora do Zeus, mas achei pertinente trazer o caso pra cá

Até as 15h+- de hoje a SEFAZ continuava enviando com namespace...

Com certeza problema do sefaz de MS. A tag xmlns retornada não é correto nem um pouco..

Bom dia

Fiz um teste agora a pouco em um cliente do MS e parece que voltaram atrás (removeram a tag da resposta)

De qualquer forma deixei um tratamento no software mais ou menos assim:

if (result.Retorno?.cStat == 104 && result.Retorno?.protNFe == null)
{                        
   var tmpXml = result.RetornoCompletoStr
       .Replace("<protNFe xmlns=\"http://www.w3.org/2000/09/xmldsig#\"", "<protNFe")
       .Replace("<infProt xmlns=\"http://www.portalfiscal.inf.br/nfe\"", "<infProt");
   var tmpRetEnv = FuncoesXml.XmlStringParaClasse<retEnviNFe>(tmpXml);
   result.Retorno.protNFe = tmpRetEnv.protNFe;
}

Nada elegante, eu sei, mas rodou ontem a tarde e funcionou