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); }
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); }
//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); }