![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Buenas...
¿Alguien sabe cómo descomprimir la respuesta a la petición (Bizkaia) usando NetHTTPClient y no los componentes de SecureBlackBox? Con NetHTTPClient consigo hacer el envío de la petición y obtengo los headers, pero no sé cómo acceder a la respuesta en formato gzip y descomprimirla sin usar los componentes de SecureBlackBox. Con el otro método que usa dichos componentes sí consigo obtener la respuesta y descomprimir el xml que contiene (con el mensaje de error detallado), pero con NetHTTPClient no sé cómo guardar AResponse.ContentStream en un gzip y luego descomprimir su contenido. Lo he intentado de varias maneras y aunque consigo guardar ContentStream como archivo, me falla al descomprimirlo. Ni siquiera puedo abrir el .gz con WinRAR. Si alguien pudo hacerlo usando NetHTTPClient y las librerías ZLib se lo agradecería. PD: El error que me devuelve (usando SecureBlackBox) es el siguiente: El XML del fichero TicketBAI no cumple el esquema.[Linea:1 Columna:52] Error:cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:ticketbai:emision":Cabecera}'. One of '{Cabecera}' is expected. Pero el XML del TicketBAI obviamente sí tiene cabecera, y no hay diferencias con respecto a los ejemplos oficiales de TicketBAI |
|
#2
|
||||
|
||||
|
Hola.
Para sacar el fichero de respuesta de hacienda yo hago lo siguiente. Código:
Comprimido : TFileStream;
AResponse := EnvioBizkaia.Post('https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena',RequestBody);
Comprimido := TFileStream.Create(NombreFicheroSalida, fmCreate);
Comprimido.CopyFrom(AResponse.ContentStream, AResponse.ContentStream.Size);
Comprimido.Destroy;
Para la generación del fichero de TBAI, en delphi no genera bien las cabeceras. Yo tengo que hacer lo siguiente despues de haber generado el fichero. Código:
Fichero := TStringList.Create;
Fichero.LoadFromFile(ficheroTemporal);
Fichero.Text := AnsiReplaceStr(Fichero.Text, '<TicketBai xmlns="urn:ticketbai:emision">','<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd ">');
Fichero.Text := AnsiReplaceStr(Fichero.Text,'</TicketBai>', '</T:TicketBai>');
System.SysUtils.DeleteFile(ficheroTemporal);
Fichero.SaveToFile(ficheroTemporal);
Fichero.Destroy;
|
|
#3
|
|||
|
|||
|
Gracias, keys. Iba por buen camino, pero solo estaba añadiendo la T: antes de TicketBAI y no en el "xmlns:T=" de después. Ni lo había visto
![]() Qué curioso que haya que descomprimir el gzip dos veces. Por cierto, para descomprimirlo usando las librerías de Delphi yo uso este código:
Como hay que descomprimir dos veces, lo hago así:
Y ya luego borro los archivos temporales sobrantes. Estoy intentando cargar la respuesta XML en el "IXMLLROEPJ240FacturasEmitidasConSGAltaRespuesta" importado, para trabajar "mejor" con las respuestas, pero no lo consigo:
El XML se carga en Alta240Respuesta, porque Alta240Respuesta.XML devuelve el contenido del XML, pero luego no puedo acceder a los valores. No encuentra nada. No me preocupa mucho porque puedo simplemente cargar el XML en un XMLDocument y trabajar con eso, pero creo que sería más cómodo aprovechar el XML Data Binding, no? Un saludo y gracias nuevamente. Ahora ya puedo obtener los errores detallados en las respuestas, así que a partir de ahora todo debería ser más sencillo. |
|
#4
|
|||
|
|||
|
Problemas con la firma del TicketBAI
Hola de nuevo. Después de corregir algunos errores en el XML del TicketBAI, en la petición, formato del gzip, etc. ahora me devuelve este otro error:
FirmaElectronica: La firma no cumple los requisitos de la polÃ*tica de firma TicketBAI.(EPES: S ALGORITMO: rsa-sha256:2048 POLITICA: N CERTIFICADO_ADMITIDO: S ) He usado el código para firma que encontré en el foro, el que usa los componentes de SecureBlackBox 2020. (He suprimido la parte del código que uso para cargar el certificado):
No sé si las URLs han cambiado y ahora son distintas. En la documentación he encontrado otra URL... https://www.euskadi.eus/contenidos/i...irma_v_1_0.pdf ...pero incluso añadiendo esa URL y su correspondiente HASH (que he calculado en https://www.fileformat.info/tool/hash.htm), me devuelve el mismo error. Como los errores que devuelve Bizkaia son muy ambiguos, no sé si el problema es ese o es otro, la verdad. Última edición por Neftali [Germán.Estévez] fecha: 04-02-2021 a las 08:40:01. Razón: Añadir TAGs al código Delphi |
|
#5
|
|||
|
|||
|
Hola
tienes que fijarte en el valor que se publica en https://www.batuz.eus/es/documentacion-tecnica Cita:
de base64 a HEX // 42ECE7F7CC773CC6D21F06D4CDA8F97F928EA621F4BBC6EF9B06DB6CD90EF44B Este es el valor actual
|
|
#6
|
||||
|
||||
|
Buenos días:
¿Alguien sabe cuando va a publicarse la información de TBai de Araba? Estamos a 4 de Febrero y no encuentro nada, ¿alguien sabe algo? |
|
#7
|
|||
|
|||
|
Gracias, juramisa.
Había probado esa cadena pero en minúsculas, supongo que por eso me daba el error. De Araba no se sabe nada. Yo envié hace un par de semanas un email solicitando información a las tres direcciones de email (una para cada provincia) y solo me han respondido de Bizkaia (responden bastante rápido) y de Gipuzkoa. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice | newtron | Internet | 3716 | 19-01-2026 20:01:34 |
| Como utilizar la ayuda del nuevo Sistema Operativo | gluglu | Humor | 3 | 24-09-2007 09:39:05 |
| Aplicacion Agencia De Viajes | ArdiIIa | Varios | 9 | 20-01-2007 16:49:53 |
| El Vasco Aguirre | Al González | La Taberna | 5 | 26-05-2006 09:22:28 |
| Microsoft ha lanzado su nuevo sistema operativo | DarkByte | Humor | 0 | 25-01-2004 09:21:14 |
|