Beispiel #1
0
        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);
        }
Beispiel #2
0
        //
        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;
            }
        }