RECUPERAR XML DIRETAMENTE DO SEFAZ

MFLAVIO 05/08/2025 11:02:12
#505031
Ola Pessoal bom dia tudo bem com voces?
gente estou tentando montar uma rotina para recuperar XML diretamente do Sefaz
o Codigo esta Assim
 Public Function RecuperaXMLSefaz(ChaveNFe As String, ambiente As String, SalvarEM As String) As Boolean
Dim CERT As X509Certificate2 = SelecionarCertificado("")
ChaveNFe = RemoveCaracterEspecial(ChaveNFe, True, True, True, True)

Dim xmlConsulta As String = $"

{ambiente}
CONSULTAR
{ChaveNFe}
"

Dim soapEnvelope As String = $"




{xmlConsulta}


"

Pnome = LeArquivoINI(nome_arquivo_ini, "Nota", "hambiente", "Configure")
If UrlAcesso.CodigoUF = "" Then
UrlAcesso = BuscaURL(DadosEMPRESA.UF, Pnome)
End If

Dim url As String = UrlAcesso.UrlNfeConsultaProtocolo
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

Dim req As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
req.Method = "POST"
req.ContentType = "text/xml; charset=utf-8"
req.Headers.Add("SOAPAction", "http://www.portalfiscal.inf.br/nfe/wsdl/NFeConsultaProtocolo4/nfeConsultaNF")
req.ClientCertificates.Add(CERT)

Dim soapBytes As Byte() = Encoding.UTF8.GetBytes(soapEnvelope)
req.ContentLength = soapBytes.Length

Using reqStream = req.GetRequestStream()
reqStream.Write(soapBytes, 0, soapBytes.Length)
End Using

Dim xmlResposta As String = ""
Using response As HttpWebResponse = CType(req.GetResponse(), HttpWebResponse)
Using reader As New StreamReader(response.GetResponseStream())
xmlResposta = reader.ReadToEnd()
End Using
End Using

Dim xmlDoc As New XmlDocument()
xmlDoc.LoadXml(xmlResposta)

Dim nsManager As New XmlNamespaceManager(xmlDoc.NameTable)
nsManager.AddNamespace("soap", "http://www.w3.org/2003/05/soap-envelope")
nsManager.AddNamespace("ns", "http://www.portalfiscal.inf.br/nfe")

Dim protocoloNode = xmlDoc.SelectSingleNode("//ns:retConsSitNFe", nsManager)
If protocoloNode IsNot Nothing Then
Dim cStat = protocoloNode.SelectSingleNode("ns:cStat", nsManager)?.InnerText
If cStat = "100" Then
' NFe autorizada
Dim procNFeXml As String = protocoloNode.OuterXml
File.WriteAllText(SalvarEM, procNFeXml, Encoding.UTF8)
Else
Return False
End If
Else
Return False
End If
Return True
End Function

Ja passei ate pelo ChatGPT
Mas ainda não consegui recuperar o XML
alguém tem a rotina ou consegue me dar um Help?
NILSONTRES 05/08/2025 12:39:41
#505032
Alterado em 05/08/2025 12:42:20 Até hoje não consegui, nem isso e nem a Manifestação.
Inclusive parece que uma coisa tem a ver com a outra.
Faça seu login para responder