public TRetConsReciNFe ConsultaRecLote2(TConsReciNFe consReciNFe, TRetEnviNFe retEnvNFe, X509Certificate2 cert) { XmlNode strRetorno = null; C_WebService.ListaUrl listaURL = default(C_WebService.ListaUrl); listaURL = WsUrls.BuscaURL(retEnvNFe.cUF, retEnvNFe.tpAmb); string nomeArquivoPedido = _PastaLog + retEnvNFe.infRec.nRec + "-ped-rec.xml"; string nomeArquivoRetProc = _PastaLog + retEnvNFe.infRec.nRec + "-pro-rec.xml"; try { RetRecepcao2.NfeRetRecepcao2 wsMsg = default(RetRecepcao2.NfeRetRecepcao2); RetRecepcao2.nfeCabecMsg cab = new RetRecepcao2.nfeCabecMsg(); //UF E VERSÃO DO CABEÇALHO cab.cUF = PegarCodigoUF(retEnvNFe.cUF); cab.versaoDados = retEnvNFe.versao; //CRIA UMA INSTANCIA DA CONEXÃO COM O WEBSERVICE wsMsg = new RetRecepcao2.NfeRetRecepcao2(listaURL.UrlNfeRetRecepcao); //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 XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml(Funcoes.RemoveNameSpaceFromXml(consReciNFe.Serialize())); xmldoc.Save(nomeArquivoPedido); //ENVIA CONSULTA PARA SEFAZ E OBTEM RETORNO EM FORMATO STRING strRetorno = wsMsg.nfeRetRecepcao2(xmldoc); TRetConsReciNFe retornoReciNFe = new TRetConsReciNFe(); XmlDocument retornoXML = new XmlDocument(); retornoXML.LoadXml(strRetorno.OuterXml); retornoXML.Save(nomeArquivoRetProc); retornoReciNFe = TRetConsReciNFe.LoadFromFile(nomeArquivoRetProc); retornoReciNFe.XmlRetorno = retornoXML; return(retornoReciNFe); } catch (Exception) { throw new ACBr.Net.NFe.Exceptions.ConsultaRecLote2Exception("Falha ao consultar o recebimento de lote de NFe.", consReciNFe, retEnvNFe, cert); } }
public TRetConsReciNFe ConsultaRecLote2(TConsReciNFe consReciNFe, TRetEnviNFe retEnvNFe, X509Certificate2 cert) { XmlNode strRetorno = null; C_WebService.ListaUrl listaURL = default(C_WebService.ListaUrl); listaURL = WsUrls.BuscaURL(retEnvNFe.cUF, retEnvNFe.tpAmb); string nomeArquivoPedido = _PastaLog + retEnvNFe.infRec.nRec + "-ped-rec.xml"; string nomeArquivoRetProc = _PastaLog + retEnvNFe.infRec.nRec + "-pro-rec.xml"; try { RetRecepcao2.NfeRetRecepcao2 wsMsg = default(RetRecepcao2.NfeRetRecepcao2); RetRecepcao2.nfeCabecMsg cab = new RetRecepcao2.nfeCabecMsg(); //UF E VERSÃO DO CABEÇALHO cab.cUF = PegarCodigoUF(retEnvNFe.cUF); cab.versaoDados = retEnvNFe.versao; //CRIA UMA INSTANCIA DA CONEXÃO COM O WEBSERVICE wsMsg = new RetRecepcao2.NfeRetRecepcao2(listaURL.UrlNfeRetRecepcao); //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 XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml(Funcoes.RemoveNameSpaceFromXml(consReciNFe.Serialize())); xmldoc.Save(nomeArquivoPedido); //ENVIA CONSULTA PARA SEFAZ E OBTEM RETORNO EM FORMATO STRING strRetorno = wsMsg.nfeRetRecepcao2(xmldoc); TRetConsReciNFe retornoReciNFe = new TRetConsReciNFe(); XmlDocument retornoXML = new XmlDocument(); retornoXML.LoadXml(strRetorno.OuterXml); retornoXML.Save(nomeArquivoRetProc); retornoReciNFe = TRetConsReciNFe.LoadFromFile(nomeArquivoRetProc); retornoReciNFe.XmlRetorno = retornoXML; return retornoReciNFe; } catch (Exception) { throw new ACBr.Net.NFe.Exceptions.ConsultaRecLote2Exception("Falha ao consultar o recebimento de lote de NFe.", consReciNFe, retEnvNFe, cert); } }