示例#1
0
        public static TRetDownloadNFe DownloadNFe(TDownloadNFe downloadNFe, TCodUfIBGE CodUF, X509Certificate2 cert)
        {
            XmlNode         xmlNodeRetorno     = null;
            TRetDownloadNFe retornoDownloadNFe = null;

            C_WebService.ListaUrl listaURL = WsUrls.BuscaURL(CodUF, downloadNFe.tpAmb);

            //CABEÇALHO
            DownloadNF.nfeCabecMsg cab = new DownloadNF.nfeCabecMsg();
            cab.cUF         = PegarCodigoUF(CodUF);                            //UF DO CABEÇALHO
            cab.versaoDados = Funcoes.ConvertEnumToString(downloadNFe.versao); //VERSÃO DO CABEÇALHO

            //CRIA UMA INSTANCIA DA CONEXÃO COM O WEBSERVICE
            DownloadNF.NfeDownloadNF wsMsg = new DownloadNF.NfeDownloadNF(listaURL.UrlNfeDownloadNF);
            wsMsg.nfeCabecMsgValue = cab;                   //ASSOCIA CABEÇALHO NFE
            wsMsg.Timeout          = 100000;                //DEFINE TEMPO MAXIMO DE ESPERA POR RETORNO
            wsMsg.ClientCertificates.Add(cert);             //ASSOCIA CERTIFICADO A CONEXAO WEBSERVICE
            wsMsg.SoapVersion = SoapProtocolVersion.Soap12; //DEFINE PROTOCOLO USADO NA CONEXÃO

            XmlDocument dados = new XmlDocument();

            dados.LoadXml(Funcoes.RemoveNameSpaceFromXml(downloadNFe.Serialize()));

            //ENVIA REQUISIÇÂO PARA SEFAZ E OBTEM RETORNO
            xmlNodeRetorno     = wsMsg.nfeDownloadNF(dados);
            retornoDownloadNFe = TRetDownloadNFe.Deserialize(xmlNodeRetorno.OuterXml);

            return(retornoDownloadNFe);
        }
示例#2
0
        public void Enviar(Entidade_DownloadNFe ObjEnt, out Entidade_DownloadNFe objDados)
        {
            Entidade_Status eRetStatus = new Entidade_Status();

            eDownloadNFe = new Entidade_DownloadNFe();
            mLog         = new Model_LogNfe();
            NFuncoes     = new NegocioFuncoesGerais();

            docTran   = new XmlDocument();
            ns        = new XmlSerializerNamespaces();
            Settings  = new XmlWriterSettings();
            xmlStatus = new XmlSerializer(typeof(TDownloadNFe));

            try
            {
                //Passando os dados para a Class que vai ser serelizada
                ObjDownloadNFeEnv = new TDownloadNFe(ObjEnt);

                // E DEFINIDO O TIPO DE LEITURA DO XML
                Settings.Encoding        = UTF8Encoding.UTF8;
                Settings.NewLineHandling = NewLineHandling.None;
                Settings.Indent          = true;
                Settings.IndentChars     = "";

                ns.Add(string.Empty, "http://www.portalfiscal.inf.br/nfe");

                Sw = new UTF8StringWriter();
                Wx = XmlWriter.Create(Sw, Settings);
                xmlStatus.Serialize(Sw, ObjDownloadNFeEnv, ns);
                string xmlGer = Sw.ToString();

                docTran.LoadXml(xmlGer);
                docTran.PreserveWhitespace = false;

                CertEmpresa = AssinaturaDigital.FindCertOnStore(ObjEnt.id_loja);
                EnviarXml(docTran, CertEmpresa, ref ObjEnt);
                objDados = null;
            }
            catch (Exception Ex)
            {
                Mensagem.MensagemErro(Mensagem.TipoMensagem.Status, "DownloaNFe", Ex.Message.ToString());
                mLog.InsertErroLog(NFuncoes.TiraCampos(Ex.Message.ToString()));
                objDados = null;
            }
        }
示例#3
0
 public static TRetDownloadNFe DownloadNFe(TDownloadNFe downloadNFe, string codUF, X509Certificate2 cert)
 {
     return(C_WebService.DownloadNFe(downloadNFe, (TCodUfIBGE)Enum.Parse(typeof(TCodUfIBGE), codUF), cert));
 }