Example #1
0
        private void btValidar_Click(object sender, EventArgs e)
        {
            var xmlPath = $"{Parametros.Actual.ParametrosAlmacen.RutaArchivosTemporales}TicketBai.Firmado.xml";
            var txtPath = $"{Parametros.Actual.ParametrosAlmacen.RutaArchivosTemporales}TicketBai.Firmado.txt";

            if (File.Exists(xmlPath))
            {
                var xmlTicketBai = File.ReadAllText(xmlPath);

                var signer = new TicketBai.Xades.Signer.TicketBaiSigner(new CanonicalizationMethodDsigC14N(),
                                                                        new DigestMethodSHA512(), new SHA256Managed());


                signer.Load(xmlTicketBai);

                var valid = signer.Validate();

                File.WriteAllText(txtPath, signer.GetValidateInfo());
            }
            else
            {
                File.WriteAllText(txtPath, "No existe xml que validar.");
            }

            wBr.Navigate(txtPath);
        }
Example #2
0
        /// <summary>
        /// Crea un TicketBai firmado.
        /// </summary>
        private void CrearTicketBaiFirmado()
        {
            Documento doc       = CrearDocumentoEjemplo();
            var       ticketBai = TicketBaiFactory.GetTicketBai(doc);
            var       xmlParser = new XmlParser();

            var signer = new TicketBai.Xades.Signer.TicketBaiSigner(new CanonicalizationMethodDsigC14N(),
                                                                    new DigestMethodSHA512(), new SHA256Managed());

            var xml = xmlParser.GetString(ticketBai, new Dictionary <string, string>()
            {
                { "T", "urn:ticketbai:emision" },
            });

            signer.Load(xml);

            var certificado = CargaCertificado();

            signer.Sign(certificado);

            var xmlPath = $"{Parametros.Actual.ParametrosAlmacen.RutaArchivosTemporales}TicketBai.Firmado.xml";

            File.WriteAllText(xmlPath, signer.XmlSigned);

            wBr.Navigate(xmlPath);
        }
Example #3
0
        /// <summary>
        /// Ejemplo de creación de un pdf de factura TicketBai.
        /// </summary>
        private void CrearFacturaPdfTicketBai()
        {
            // Creamos y preparamos un documento de ejemplo
            Documento documento = CrearDocumentoEjemplo();

            // Creo un objeto TicketBai para obtener el código indentificativo y el CRC8
            var ticketBai = TicketBaiFactory.GetTicketBai(documento);


            // Firmo el ticketBai
            var xmlParser = new XmlParser();

            var signer = new TicketBai.Xades.Signer.TicketBaiSigner(new CanonicalizationMethodDsigC14N(),
                                                                    new DigestMethodSHA512(), new SHA256Managed());

            var xml = xmlParser.GetString(ticketBai, new Dictionary <string, string>()
            {
                { "T", "urn:ticketbai:emision" },
            });

            signer.Load(xml);

            var certificado = CargaCertificado();

            signer.Sign(certificado);

            // obtener el código indentificativo y el CRC8
            documento.CodigoIdentificativo  = $"{signer.TicketBaiSigned.CodigoIdentificativo}";
            documento.CodigoDetecionErrores = signer.TicketBaiSigned.CodigoIdentificativo.ControlCRC8;

            // Texto html de plantilla de factura
            var plantillaFacturaHtml          = Resources.factura;
            RenderizadorHtml renderizadorHtml = new RenderizadorHtml(documento,
                                                                     plantillaFacturaHtml);
            // Texto html completado con los datos del documento
            var facturaHtml = renderizadorHtml.Renderiza();

            // Mediante el texto html obtenemos el pdf de factura
            var pdfManager = new PdfManager();
            var facturaPdf = pdfManager.GetPdfFormHtml(facturaHtml, "",
                                                       (byte[])Resources.seguiemj);

            // Guardamos el pdf
            var pdfPath = $"{Parametros.Actual.ParametrosAlmacen.RutaArchivosTemporales}TicketBai.pdf";

            File.WriteAllBytes(pdfPath, facturaPdf);

            wBr.Navigate(pdfPath);
        }
Example #4
0
        private void btSend_Click(object sender, EventArgs e)
        {
            Documento doc       = CrearDocumentoEjemplo();
            var       ticketBai = TicketBaiFactory.GetTicketBai(doc);
            var       xmlParser = new XmlParser();

            var signer = new TicketBai.Xades.Signer.TicketBaiSigner(new CanonicalizationMethodDsigC14N(),
                                                                    new DigestMethodSHA512(), new SHA256Managed());

            var xml = xmlParser.GetString(ticketBai, new Dictionary <string, string>()
            {
                { "T", "urn:ticketbai:emision" },
            });

            signer.Load(xml);

            var certificado = CargaCertificado();

            signer.Sign(certificado);

            var peticion = new PeticionHttp(Url.UrlProduccionEnvio);

            var tBaiSigned = $"<?xml version=\"1.0\" encoding=\"UTF-8\"?>{signer.XmlSigned}";

            File.WriteAllText(@"C:\Users\usuario\Downloads\TEST ALTA\TBAI.xml", tBaiSigned);

            LROEPF140IngresosConFacturaConSGAltaPeticion alta = new LROEPF140IngresosConFacturaConSGAltaPeticion()
            {
                Cabecera = new Cabecera()
                {
                    Modelo             = "140",
                    Capitulo           = "1",
                    Subcapitulo        = "1.1",
                    Operacion          = "A00",
                    Version            = "1.0",
                    Ejercicio          = "2021",
                    ObligadoTributario = new ObligadoTributario()
                    {
                        NIF = "19006851L",
                        ApellidosNombreRazonSocial = "DIAGO GARCIA MANUEL"
                    }
                },
                Ingresos = new List <Ingreso>()
                {
                    new Ingreso()
                    {
                        TicketBai = Encoding.UTF8.GetBytes(tBaiSigned),
                        Renta     = new List <DetalleRenta>()
                        {
                            new DetalleRenta()
                            {
                                Epigrafe = "1845"
                            }
                        }
                    }
                }
            };

            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();

            ns.Add("lrpficfcsgap", "https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_2.xsd");

            XmlSerializer serializer = new XmlSerializer(alta.GetType());

            //LROEPF140IngresosConFacturaConSGAltaPeticion ejemplo = null;

            //using (Stream reader = new FileStream(@"C:\Users\usuario\Downloads\TEST ALTA\EJEMPLO.xml", FileMode.Open))
            //    ejemplo = (LROEPF140IngresosConFacturaConSGAltaPeticion)serializer.Deserialize(reader);

            //File.WriteAllText(@"C:\Users\usuario\Downloads\TEST ALTA\EJEMPLO_TBAI.xml", Encoding.UTF8.GetString(ejemplo.Ingresos[0].TicketBai));

            // Create an XmlTextWriter using a FileStream.
            MemoryStream ms     = new MemoryStream();
            XmlWriter    writer = new XmlTextWriter(ms, Encoding.UTF8);

            // Serialize using the XmlTextWriter.
            serializer.Serialize(writer, alta, ns);
            writer.Close();

            var bytesPeticion = ms.ToArray();

            //var ticketBaiFirmado = $"<?xml version=\"1.0\" encoding=\"UTF-8\"?>{signer.XmlSigned}";
            //var ticketBaiFirmado = File.ReadAllText(@"C:\Users\usuario\Downloads\Ejemplos\Ejemplo_TicketBAI_79732487C_A2022_0399.xml");
            //var bytesPeticion = peticion.Encoding.GetBytes(ticketBaiFirmado);

            //bytesPeticion = Encoding.UTF8.GetBytes(File.ReadAllText(@"C:\Users\usuario\Downloads\Ejemplos\Ejemplo_1_LROE_PF_140_IngresosConFacturaConSG_79732487C.xml"));


            byte[] bytesPeticionComprimida;

            using (var outStream = new MemoryStream())
            {
                using (var tinyStream = new GZipStream(outStream, CompressionMode.Compress))
                    using (var mStream = new MemoryStream(bytesPeticion))
                        mStream.CopyTo(tinyStream);

                bytesPeticionComprimida = outStream.ToArray();
            }



            var dat = new data("1.1", new inte()
            {
                nif = "19006851L", nrs = "MANUEL", ap1 = "DIAGO", ap2 = "GARCIA"
            }, "140", "2021");
            var json = $"{dat}";

            peticion.Peticion.Headers["eus-bizkaia-n3-data"] = json;
            peticion.Peticion.ContentLength = bytesPeticionComprimida.Length;

            peticion.Peticion.ClientCertificates.Add(certificado);

            using (Stream stream = peticion.Peticion.GetRequestStream())
                stream.Write(bytesPeticionComprimida, 0, bytesPeticionComprimida.Length);

            HttpWebResponse response = (HttpWebResponse)peticion.Peticion.GetResponse();

            string statusDescription = response.StatusDescription;

            Stream dataStream = response.GetResponseStream();

            string responseFromServer;

            using (StreamReader reader = new StreamReader(dataStream))
            {
                responseFromServer = reader.ReadToEnd();
                reader.Close();
                dataStream.Close();
                response.Close();
            }
        }