public Task <NFeResult> GravarProtocolo() { foreach (var nf in Store.GetNotReturn(default(CancellationToken)).Result) { TConsSitNFe consSitNFe = new TConsSitNFe(); consSitNFe.chNFe = nf.Id; consSitNFe.tpAmb = (TAmb)nf.infNFe.ide.tpAmb; consSitNFe.versao = (TVerConsSitNFe)Enum.Parse(typeof(TVerConsSitNFe), string.Concat("Item", nf.infNFe.versao.Replace(".", ""))); consSitNFe.xServ = TConsSitNFeXServ.CONSULTAR; XmlSerializer xs = new XmlSerializer(typeof(TConsSitNFe)); StringWriter stringWriter = new StringWriter(); xs.Serialize(stringWriter, consSitNFe); XmlDocument consSit = new XmlDocument(); consSit.LoadXml(stringWriter.ToString()); XmlNode nodeConsSit = consSit.GetElementsByTagName("consSitNFe")[0]; //Store.Protocolo() } return(Task.FromResult(NFeResult.Success)); }
public void Process() { var cert = CertificadoController.Instance.getCertificado_SerialNumber("313838"); var obj = new TConsSitNFe() { versao = TVerConsSitNFe.Item400, tpAmb = TAmb.Item2, xServ = TConsSitNFeXServ.CONSULTAR, chNFe = "31181209339936000973550330000930221088758563" }; var xml = obj.SerializeObject(); return; }
public List <TRetConsSitNFe> ConsultaSitNFe(HiperNFe hiperNFe, X509Certificate2 cert) { XmlNode strRetorno = null; C_WebService.ListaUrl listaURL = default(C_WebService.ListaUrl); listaURL = WsUrls.BuscaURL(hiperNFe.Configuracao.CodUF, hiperNFe.Configuracao.Ambiente); try { Consulta2.NfeConsulta2 wsMsg = default(Consulta2.NfeConsulta2); Consulta2.nfeCabecMsg cab = new Consulta2.nfeCabecMsg(); //UF E VERSÃO DO CABEÇALHO cab.cUF = PegarCodigoUF(hiperNFe.Configuracao.CodUF); cab.versaoDados = hiperNFe.Configuracao.Versao; //CRIA UMA INSTANCIA DA CONEXÃO COM O WEBSERVICE wsMsg = new Consulta2.NfeConsulta2(listaURL.UrlNfeConsultaProtocolo); //ASSOCIA CABEÇALHO NFE wsMsg.nfeCabecMsgValue = cab; //DEFINE TEMPO MAXIMO DE ESPERA POR RETORNO wsMsg.Timeout = 100000; //ASSOCIA CERTIFICADO A CONEXAO WEBSERVICE wsMsg.ClientCertificates.Add(cert); //DEFINE PROTOCOLO USADO NA CONEXÃO wsMsg.SoapVersion = SoapProtocolVersion.Soap12; //CRIA UM NOVO DOCUMENTO XML List <TRetConsSitNFe> listaRetorno = new List <TRetConsSitNFe>(); foreach (TNfeProc nota in hiperNFe.NotasFiscais) { TConsSitNFe consSitNfe = new TConsSitNFe(); string chaveNfe = nota.NFe.infNFe.Id.Substring(3); string arquivoConsulta = _PastaLog + chaveNfe + "-ped-sit.xml"; string arquivoRetorno = _PastaLog + chaveNfe + "-sit.xml"; consSitNfe.chNFe = chaveNfe; consSitNfe.tpAmb = hiperNFe.Configuracao.Ambiente; //consSitNfe.versao = nota.NFe.infNFe.versao; consSitNfe.versao = TVerConsSitNFe.Versao201; consSitNfe.xServ = TConsSitNFeXServ.CONSULTAR; XmlDocument dados = new XmlDocument(); dados.LoadXml(Funcoes.RemoveNameSpaceFromXml(consSitNfe.Serialize())); dados.Save(arquivoConsulta); strRetorno = wsMsg.nfeConsultaNF2(dados); XmlDocument retornoXML = new XmlDocument(); retornoXML.LoadXml(strRetorno.OuterXml); retornoXML.Save(arquivoRetorno); TRetConsSitNFe retornoSitNFe = new TRetConsSitNFe(); retornoSitNFe = TRetConsSitNFe.LoadFromFile(arquivoRetorno); nota.procEventoNFe = retornoSitNFe.procEventoNFe; if (nota.procEventoNFe != null) { foreach (var item in nota.procEventoNFe) { string arquivoProcEvento = _PastaLog + item.evento.infEvento.tpEvento + chaveNfe + item.evento.infEvento.nSeqEvento + "-procEventoNfe.xml"; XmlDocument xmlEvento = new XmlDocument(); item.SaveToFile(arquivoProcEvento); xmlEvento.LoadXml(item.Serialize()); item.ArquivoXML = xmlEvento; item.NomeArquivo = arquivoProcEvento; } } listaRetorno.Add(retornoSitNFe); } return(listaRetorno); } catch (Exception ex) { throw new System.InvalidOperationException("Erro ao consultar a situação da NFe. Erro: " + ex.Message); } }
private static void consultaSituacao() { XmlDocument document = new XmlDocument(); FileInfo xml = new FileInfo(@"T:\2018\2018-10\35180900152891000100550010000001591000208700.xml"); document.Load(xml.FullName); NFe NFe = new NFe(); var node = document.GetElementsByTagName("NFe")[0]; NFe.XmlNFe = new XmlNFe { DhChange = xml.LastWriteTimeUtc, XmlDocument = XElement.Parse(document.InnerXml) }; NFe.SetProperties(node); TConsSitNFe consSitNFe = new TConsSitNFe(); consSitNFe.chNFe = NFe.Id; consSitNFe.tpAmb = (TAmb)NFe.infNFe.ide.tpAmb; consSitNFe.versao = (TVerConsSitNFe)Enum.Parse(typeof(TVerConsSitNFe), string.Concat("Item", NFe.infNFe.versao.Replace(".", ""))); consSitNFe.xServ = TConsSitNFeXServ.CONSULTAR; XmlSerializer xs = new XmlSerializer(typeof(TConsSitNFe)); StringWriter stringWriter = new StringWriter(); xs.Serialize(stringWriter, consSitNFe); XmlDocument consSit = new XmlDocument(); consSit.LoadXml(stringWriter.ToString()); XmlNode nodeConsSit = consSit.GetElementsByTagName("consSitNFe")[0]; if (nodeConsSit != null) { X509Certificate2Collection certificates = new X509Certificate2Collection(); DirectoryInfo directoryCert = new DirectoryInfo(@"G:\Sieg\Certificados"); var certificados = directoryCert.GetFiles("x.pfx", SearchOption.AllDirectories).ToList(); foreach (var fileCert in certificados) { // certificates.Import() } certificates.Import(@"G:\Sieg\Certificados\0002-MOREIRA moreira.pfx", "moreira", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet); foreach (var key in certificates) { if (key.HasPrivateKey) { VerificarCnpj(key); } } //NFeConsultaProtocolo4Soap12Client nFeConsultaProtocolo = new NFeConsultaProtocolo4Soap12Client(); //nFeConsultaProtocolo.ClientCredentials.ClientCertificate.Certificate = cert; //var retorno = nFeConsultaProtocolo.nfeConsultaNF(nodeConsSit); //NFe.XmlNFe.retConsSitNFe = new TaxAuditCommunity.Domain.procNFe.TRetConsSitNFe.retConsSitNFe(); //NFe.XmlNFe.retConsSitNFe.SetProperties(retorno); //XmlSerializer RetConsSitxs = new XmlSerializer(typeof(TRetConsSitNFe)); //MemoryStream ms = new MemoryStream(); } }
public MensagemRetornoConsulta ConsultarNotaFiscal(string chave, string codigoUf, X509Certificate2 certificado, Ambiente ambiente, Modelo modelo) { XmlNode node = null; var parametro = new TConsSitNFe(); parametro.chNFe = chave; parametro.tpAmb = ambiente == Ambiente.Homologacao ? Envio.TAmb.Item2 : Envio.TAmb.Item1; parametro.versao = Envio.TVerConsSitNFe.Item400; parametro.xServ = TConsSitNFeXServ.CONSULTAR; string nFeNamespaceName = "http://www.portalfiscal.inf.br/nfe"; string parametroXML = XmlUtil.Serialize(parametro, nFeNamespaceName); XmlDocument doc = new XmlDocument(); XmlReader reader = XmlReader.Create(new StringReader(parametroXML)); reader.MoveToContent(); node = doc.ReadNode(reader); string endpoint = ""; if (ambiente == Ambiente.Homologacao) { if (modelo == Modelo.Modelo55) { endpoint = "NfeConsulta2Hom"; } else { endpoint = "NfceConsulta2Hom"; } } else { if (modelo == Modelo.Modelo55) { endpoint = "NfeConsulta2Prod"; } else { endpoint = "NfceConsulta2Prod"; } } var soapClient = new NFeConsultaProtocolo4SoapClient(endpoint); soapClient.ClientCredentials.ClientCertificate.Certificate = certificado; XmlNode result = soapClient.nfeConsultaNF(node); var retornoConsulta = (TRetConsSitNFe)XmlUtil.Deserialize <TRetConsSitNFe>(result.OuterXml); MensagemRetornoConsulta mensagemRetorno = new MensagemRetornoConsulta(); if (retornoConsulta.cStat == "100") { mensagemRetorno.IsEnviada = true; mensagemRetorno.Protocolo = retornoConsulta.protNFe; mensagemRetorno.DhAutorizacao = retornoConsulta.protNFe.infProt.dhRecbto; //não é a hora da autorização } else { mensagemRetorno.IsEnviada = false; } return(mensagemRetorno); }