/// <summary> /// Consulta a Situação da NFe /// </summary> /// <returns>Retorna um objeto da classe RetornoNfeConsultaProtocolo com os dados da Situação da NFe</returns> public RetornoNfeDownload NfeDownloadNf(string cnpj, List<string> chaves) { var versaoServico = Auxiliar.VersaoServicoParaString(ServicoNFe.NfeDownloadNF, _cFgServico.VersaoNfeDownloadNF); #region Cria o objeto wdsl para envio do pedido de Download var ws = CriarServico(ServicoNFe.NfeDownloadNF, TipoRecepcaoEvento.Nenhum); ws.nfeCabecMsg = new nfeCabecMsg { cUF = _cFgServico.cUF, //Embora em http://www.nfe.fazenda.gov.br/portal/webServices.aspx?tipoConteudo=Wak0FwB7dKs=#GO esse serviço está nas versões 2.00 e 3.10, ele rejeita se mandar a versão diferente de 1.00. Testado no Ambiente Nacional - (AN) versaoDados = /*versaoServico*/ "1.00" }; #endregion #region Cria o objeto downloadNFe var pedDownload = new downloadNFe { //Embora em http://www.nfe.fazenda.gov.br/portal/webServices.aspx?tipoConteudo=Wak0FwB7dKs=#GO esse serviço está nas versões 2.00 e 3.10, ele rejeita se mandar a versão diferente de 1.00. Testado no Ambiente Nacional - (AN) versao = /*versaoServico*/ "1.00", CNPJ = cnpj, tpAmb = _cFgServico.tpAmb, chNFe = chaves }; #endregion #region Valida, Envia os dados e obtém a resposta var xmlDownload = pedDownload.ObterXmlString(); Validador.Valida(ServicoNFe.NfeDownloadNF, TipoRecepcaoEvento.Nenhum, _cFgServico.VersaoNfeDownloadNF, xmlDownload); var dadosDownload = new XmlDocument(); dadosDownload.LoadXml(xmlDownload); SalvarArquivoXml(cnpj + "-ped-down.xml", xmlDownload); var retorno = ws.Execute(dadosDownload); var retornoXmlString = retorno.OuterXml; var retDownload = new retDownloadNFe().CarregarDeXmlString(retornoXmlString); SalvarArquivoXml(cnpj + "-down.xml", retornoXmlString); return new RetornoNfeDownload(pedDownload.ObterXmlString(), retDownload.ObterXmlString(), retornoXmlString, retDownload); #endregion }
public RetornoNfeDownload(string envioStr, string retornoStr, string retornoCompletaStr, retDownloadNFe retorno) : base(envioStr, retornoStr, retornoCompletaStr, retorno) { Retorno = retorno; }