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