public static string enviarHecienda(string clave, string archivoXml, string tipoCedEmisor, string cedEmisor, string tipoCedRecep, string cedRecep, string consecutivoRecep, string directorio) { xmlEnvia.Load(archivoXml); N_Comunicacion enviaFactura = new N_Comunicacion(); Emisor myEmisor = new Emisor(); myEmisor.numeroIdentificacion = cedEmisor; myEmisor.TipoIdentificacion = tipoCedEmisor; Receptor myReceptor = new Receptor(); myReceptor.numeroIdentificacion = cedRecep; myReceptor.TipoIdentificacion = tipoCedRecep; Recepcion myRecepcion = new Recepcion(); myRecepcion.emisor = myEmisor; myRecepcion.receptor = myReceptor; myRecepcion.clave = clave; myRecepcion.fecha = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz"); myRecepcion.comprobanteXml = N_Funciones.EncodeStrToBase64(xmlEnvia.OuterXml); myRecepcion.consecutivoReceptor = consecutivoRecep; string Token = ""; Token = getToken(); enviaFactura.EnvioDatos(Token, myRecepcion); string jsonEnvio = ""; jsonEnvio = enviaFactura.jsonEnvio; string jsonRespuesta = ""; jsonRespuesta = enviaFactura.jsonRespuesta; System.IO.StreamWriter outputFile = new System.IO.StreamWriter((directorio + "_03_jsonEnvio.txt")); outputFile.Write(jsonEnvio); outputFile.Close(); outputFile = new System.IO.StreamWriter((directorio + "_04_jsonRespuesta.txt")); outputFile.Write(jsonRespuesta); outputFile.Close(); if (!(enviaFactura.xmlRespuesta == null)) { enviaFactura.xmlRespuesta.Save((directorio + "_05_RESP.xml")); } else { outputFile = new System.IO.StreamWriter((directorio + "_05_RESP_SinRespuesta.txt")); outputFile.Write(""); outputFile.Close(); } return(enviaFactura.mensajeRespuesta); }
// public void EnvioDatos(string TK, Recepcion objRecepcion) { try { HttpClient http = new HttpClient(); Newtonsoft.Json.Linq.JObject JsonObject = new Newtonsoft.Json.Linq.JObject(); JsonObject.Add(new JProperty("clave", objRecepcion.clave)); JsonObject.Add(new JProperty("fecha", objRecepcion.fecha)); JsonObject.Add(new JProperty("emisor", new JObject(new JProperty("tipoIdentificacion", objRecepcion.emisor.TipoIdentificacion), new JProperty("numeroIdentificacion", objRecepcion.emisor.numeroIdentificacion)))); JsonObject.Add(new JProperty("receptor", new JObject(new JProperty("tipoIdentificacion", objRecepcion.receptor.TipoIdentificacion), new JProperty("numeroIdentificacion", objRecepcion.receptor.numeroIdentificacion)))); JsonObject.Add(new JProperty("consecutivoReceptor", objRecepcion.consecutivoReceptor)); JsonObject.Add(new JProperty("comprobanteXml", objRecepcion.comprobanteXml)); jsonEnvio = JsonObject.ToString(); StringContent oString = new StringContent(JsonObject.ToString()); http.DefaultRequestHeaders.Add("authorization", ("Bearer " + TK)); HttpResponseMessage response = http.PostAsync((URL_RECEPCION + "recepcion"), oString).Result; if (response.StatusCode.ToString() == "ServiceUnavailable" || response.StatusCode.ToString() == "BadGateway") { mensajeRespuesta = "Servidor de Hacienda caído"; } else { Thread.Sleep(5000);//Tiempo de 3 segundos para esperar aprobacion o rechazo de hacienda string consultaClave = objRecepcion.clave + "-" + objRecepcion.consecutivoReceptor; ConsultaEstatus(TK, consultaClave); } } catch (Exception ex) { throw ex; } }