示例#1
0
        static void Main(string[] args)
        {
            ApiServicios api     = new ApiServicios();
            Archivos     archivo = new Archivos();

            // Abre el archivo de Factura
            // Antes de mandar a timbrar se debe de cambiar la fecha de la factura respetando el formato
            String cfdi = archivo.ConvertirStreamToStringUTF8(archivo.Abrir(ObtieneDirectorioAplicacion() + @"\Json\Factura.json"));
            string uuid = api.Timbrar(cfdi);

            //Ejemplo de la cancelacion
            Cancelar cancelacion = new Cancelar();

            cancelacion.RFC      = "AAA010101AAA";
            cancelacion.Usuario  = "PruebasTimbrado";
            cancelacion.Password = "******";

            String pfx = archivo.ConvertirByteToBase64(archivo.ConvertirStreamToByte(archivo.Abrir(ObtieneDirectorioAplicacion() + @"\Certificado\AAA010101AAA.pfx")));

            cancelacion.PFX         = pfx;
            cancelacion.PFXPassword = "******";

            cancelacion.UUIDs = new List <string>();
            cancelacion.UUIDs.Add(uuid);

            api.Cancelar(cancelacion);
        }
示例#2
0
        // private string Url = "https://localhost:52860/Servicios.svc/";

        public string Timbrar(string datos)
        {
            string ruta      = Url + "ApiTimbrarCFDI";
            string respuesta = string.Empty;

            JavaScriptSerializer JSON = new JavaScriptSerializer();

            WebClient webClient = new WebClient();

            byte[] resByte;
            byte[] reqString;
            String UUID = string.Empty;

            Console.WriteLine("Inicia proceso de Timbrado");
            Console.WriteLine("");

            try
            {
                reqString = Encoding.Default.GetBytes(datos);
                webClient.Headers["content-type"]    = "application/json";
                webClient.Headers["accept-encoding"] = "gzip,deflate";
                webClient.Headers["user-agent"]      = "Apache-HttpClient/4.1.1 (java 1.5)";

                resByte = webClient.UploadData(ruta, "POST", reqString);
                Stream       responseStream = new Archivos().ConvertirByteToStream(resByte);
                StreamReader ReaderResponse = new StreamReader(responseStream, Encoding.UTF8);
                var          resultado      = ReaderResponse.ReadToEnd();

                Newtonsoft.Json.Linq.JObject cfdi = Newtonsoft.Json.Linq.JObject.Parse(resultado);

                UUID = cfdi["CFDITimbrado"]["Respuesta"]["UUID"].ToString();

                Console.WriteLine(((Newtonsoft.Json.Linq.JContainer)cfdi.Root).First().ToString());
                Console.WriteLine("");
                Console.WriteLine("Dentro del Json de respuesta encontraras el timbre, cadena original, etc. verifica la documentacion para mas información");

                webClient.Dispose();
            }
            catch (Exception ex)
            {
                ex = ex;
            }

            return(UUID);
        }
示例#3
0
        public void Cancelar(Cancelar cancelacion)
        {
            string ruta      = Url + "ApiCancelarCFDI";
            string respuesta = string.Empty;

            JavaScriptSerializer JSON = new JavaScriptSerializer();

            WebClient webClient = new WebClient();

            byte[] resByte;
            byte[] reqString;

            Console.WriteLine("");
            Console.WriteLine("Inicia proceso de cancelacion");
            Console.WriteLine("");

            try
            {
                reqString = Encoding.Default.GetBytes(JSON.Serialize(cancelacion));
                webClient.Headers["content-type"]    = "application/json";
                webClient.Headers["accept-encoding"] = "gzip,deflate";
                webClient.Headers["user-agent"]      = "Apache-HttpClient/4.1.1 (java 1.5)";

                resByte = webClient.UploadData(ruta, "POST", reqString);
                Stream responseStream = new Archivos().ConvertirByteToStream(resByte);

                StreamReader ReaderResponse = new StreamReader(responseStream, Encoding.UTF8);
                var          resultado      = ReaderResponse.ReadToEnd();

                JObject cfdi = JObject.Parse(resultado);

                Console.WriteLine(cfdi["FoliosRespuesta"]);
                Console.WriteLine("");
                Console.WriteLine("Dentro de cada uuid está el detalle de la cancelacion mas información en la documentacion");

                Console.ReadKey();

                webClient.Dispose();
            }
            catch (Exception ex)
            {
                ex = ex;
            }
        }