public DataMensajeReceptor SetearMensajeReceptor(string [] valoresDocumento, string mensaje, string detalleMensaje)
        {
            //{ "Clave", "FechaEmision", "TipoEmisor", "IdentificacionEmisor", "TipoReceptor","IdentificacionReceptor", "TotalImpuesto", "TotalComprobante" ,"NumeroConsecutivoReceptor"};
            DataMensajeReceptor DataComprobanteReceptor = new DataMensajeReceptor
            {
                Clave = valoresDocumento[0],
                NumeroCedulaEmisor        = valoresDocumento[3],
                FechaEmisionDoc           = Convert.ToDateTime(DateTime.UtcNow.ToString(EngineData.dateFormat)),
                Mensaje                   = TipoMensajeReceptor(mensaje),
                DetalleMensaje            = detalleMensaje,
                NumeroCedulaReceptor      = valoresDocumento[5],
                MontoTotalImpuesto        = Convert.ToDecimal(valoresDocumento[6]),
                TotalFactura              = Convert.ToDecimal(valoresDocumento[7]),
                NumeroConsecutivoReceptor = valoresDocumento[8]
            };

            return(DataComprobanteReceptor);
        }
Exemple #2
0
        public MensajeReceptor CrearEstructuraMensajeReceptor(DataMensajeReceptor value)
        {
            MensajeReceptor MensajeReceptor = new MensajeReceptor
            {
                Clave = value.Clave,                                                                                             //CLAVE DEL DOCUMENTO AL CUAL SE ASOCIA ESTE MESAJE
                NumeroCedulaEmisor          = value.NumeroCedulaEmisor,
                FechaEmisionDoc             = value.FechaEmisionDoc,                                                             // FECHA Y HORA DE LA EMISION DE ESTA RESPUESTA
                Mensaje                     = (MensajeReceptorMensaje)Enum.Parse(typeof(MensajeReceptorMensaje), value.Mensaje), //Item1(aceptado),Item2(aceptado parcialmente) y Item3(rechazado)
                DetalleMensaje              = value.DetalleMensaje,                                                              //80 CARACTERES MAXIMOS
                MontoTotalImpuesto          = value.MontoTotalImpuesto.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),
                MontoTotalImpuestoSpecified = EngineDocumento.InsertFieldBoolCantidad(value.MontoTotalImpuesto),
                TotalFactura                = value.TotalFactura.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),
                NumeroCedulaReceptor        = value.NumeroCedulaReceptor,
                NumeroConsecutivoReceptor   = value.NumeroConsecutivoReceptor,
            };

            return(MensajeReceptor);
        }
        public XmlDocument CrearDocumentoXmlReceptor(DataMensajeReceptor objDataMensajeReceptor)
        {
            XmlDocument    documentoXml   = new XmlDocument();
            XmlDeclaration xmlDeclaracion = documentoXml.CreateXmlDeclaration("1.0", "UTF-8", null);
            XmlElement     root           = documentoXml.DocumentElement;

            documentoXml.InsertBefore(xmlDeclaracion, root);
            CreadorMensajeReceptor XmlMensaje      = new CreadorMensajeReceptor();
            MensajeReceptor        MensajeReceptor = new MensajeReceptor();

            MensajeReceptor = XmlMensaje.CrearEstructuraMensajeReceptor(objDataMensajeReceptor);
            var navMensajeReceptor = documentoXml.CreateNavigator();

            using (writer = navMensajeReceptor.AppendChild())
            {
                var serializer = new XmlSerializer(typeof(MensajeReceptor));
                serializer.Serialize(writer, MensajeReceptor);
            }
            return(documentoXml);
        }
Exemple #4
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);
        }