/// <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); }
/// <summary> /// Ejemplo de creación de un archivo TicketBai. /// </summary> private void CrearTicketBai() { Documento doc = CrearDocumentoEjemplo(); var ticketBai = TicketBaiFactory.GetTicketBai(doc); var xmlParser = new XmlParser(); var xmlPath = $"{Parametros.Actual.ParametrosAlmacen.RutaArchivosTemporales}TicketBai.xml"; File.WriteAllText(xmlPath, xmlParser.GetString(ticketBai, Namespaces.Items)); wBr.Navigate(xmlPath); }
/// <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); }
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(); } }