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