예제 #1
0
        //METODO UTILIZADO PARA CREAR , FIRMAR Y ENVIAR EL MENSAJE RECEPTOR
        public async Task <string> EnviarDocumentoPostReceptor(string accessToken, string [] valoresDocumento, string mensaje, string detalleMensaje)
        {
            urlValidacion = string.Empty;
            string              jsonDocumento          = string.Empty;
            EngineDocumentoXml  EngineDataXml          = new EngineDocumentoXml();
            DataMensajeReceptor objDataMensajeReceptor = new DataMensajeReceptor();

            objDataMensajeReceptor = EngineDataXml.SetearMensajeReceptor(valoresDocumento, mensaje, detalleMensaje);

            XmlDocument documentoXml = new XmlDocument();

            documentoXml = EngineDataXml.CrearDocumentoXmlReceptor(objDataMensajeReceptor);
            FirmaXadesEpes MetodoFirmar = new FirmaXadesEpes();

            documentoXml = MetodoFirmar.XadesEpesFirma(documentoXml, Valor.PathCertificadoNeo(), Valor.PinCertificadoNeo());

            CreadorComprobante ComprobanteXml = new CreadorComprobante();

            jsonDocumento = ComprobanteXml.CadenaComprobante(valoresDocumento, documentoXml);

            HttpClient client = new HttpClient();

            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(EngineData.application_json));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(EngineData.bearer, accessToken);
            HttpResponseMessage response = await client.PostAsync(Valor.UrlEnvioDocumento(), new StringContent(jsonDocumento, Encoding.UTF8, EngineData.application_json));

            if (response.IsSuccessStatusCode)
            {
                urlValidacion = response.Headers.Location.ToString();
            }
            else
            {
                urlValidacion = EngineData.falso;
            }

            return(urlValidacion);
        }
예제 #2
0
        //METODO PARA CREAR , FIRMAR Y ENVIAR DOCUMENTOS ELECTRONICOS EMITIDOS (Factura, NotaDebito , NotaCredito,TiqueteElectronico )
        public async Task <string> EnviarDocumentoPost(string accessToken, ComprobanteElectronicoCRI objComprobanteElectronicoCRI, string tipoDocumento)
        {
            urlValidacion = string.Empty;
            string             jsonDocumento = string.Empty;
            EngineDocumentoXml MetodoCrear   = new EngineDocumentoXml();
            XmlDocument        documentoXml  = new XmlDocument();

            documentoXml = MetodoCrear.CrearDocumentoXml(objComprobanteElectronicoCRI, tipoDocumento);
            FirmaXadesEpes MetodoFirmar = new FirmaXadesEpes();

            documentoXml = MetodoFirmar.XadesEpesFirma(documentoXml, Valor.PathCertificadoNeo(), Valor.PinCertificadoNeo()); // DATOS DEL CERTIFICADO DEL EMISOR DEL DOCUMENTO
            //documentoXml = MetodoFirmar.XadesEpesFirma(documentoXml, Valor.PathCertificadoByron(), Valor.PinCertificadoByron());

            CreadorComprobante ComprobanteXml     = new CreadorComprobante();
            string             tipoEmisorNumero   = Valor.TipoEmisor().Substring(Valor.TipoEmisor().Length - 2, 2);//Quito la palabra Item al TipoEmisor
            string             tipoReceptorNumero = objComprobanteElectronicoCRI.ComprobanteElectronicoCRIEntidadJuridicaReceptor.TipoIdentificacion.Substring(objComprobanteElectronicoCRI.ComprobanteElectronicoCRIEntidadJuridicaReceptor.TipoIdentificacion.Length - 2, 2);

            jsonDocumento = ComprobanteXml.CadenaComprobante(objComprobanteElectronicoCRI.Clave, objComprobanteElectronicoCRI.NumeroConsecutivo, tipoEmisorNumero, Valor.NumeroIdentificacionEmisor(), tipoEmisorNumero, objComprobanteElectronicoCRI.ComprobanteElectronicoCRIEntidadJuridicaReceptor.Identificacion, documentoXml);

            HttpClient client = new HttpClient();

            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(EngineData.application_json));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(EngineData.bearer, accessToken);
            HttpResponseMessage response = await client.PostAsync(Valor.UrlEnvioDocumento(), new StringContent(jsonDocumento, Encoding.UTF8, EngineData.application_json));

            if (response.IsSuccessStatusCode)
            {
                urlValidacion = response.Headers.Location.ToString();
            }
            else
            {
                urlValidacion = EngineData.falso;
            }

            return(urlValidacion);
        }