RECUPERAR XML DIRETAMENTE DO SEFAZ
Ola Pessoal bom dia tudo bem com voces?
gente estou tentando montar uma rotina para recuperar XML diretamente do Sefaz
o Codigo esta Assim
Ja passei ate pelo ChatGPT
Mas ainda não consegui recuperar o XML
alguém tem a rotina ou consegue me dar um Help?
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?
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.
Inclusive parece que uma coisa tem a ver com a outra.
Faça seu login para responder