![]() |
![]() |
| 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
|
|||
|
|||
|
Hola
Estoy probando a hacer varios envíos seguidos de facturas a distintos clientes, para comprobar si hay algún caracter especial en el nombre del cliente, etc. En algunos envíos me devuelve el error Codigo 008: Error en verificación de firma. En otros me devuelve el error Codigo 008: El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. Reference URI="#SignedProperties-1610103204" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606) En cualquier caso, el envío se realiza y la factura consta como enviada (no puedo subirla de nuevo porque ya existe). En el entorno de pruebas que estoy desarrollando, guardo el archivo xml ANTES y DESPUÉS de firmarlo. Abriéndolos con el Notepad++ veo que ambos tienen codificación UTF-8 SIN BOM. ¿Hay alguna utilidad online donde poder verificar los XML de ticketbai? |
|
#2
|
|||
|
|||
|
Cita:
Una vez firmado el xml no puedes volver a guardarlo. Es decir, cuando lo firmas tienes que dejarlo tal cual y no puedes realizar ninguna acción sobre el (obviamente si puedes enviar el fichero, copiarlo, moverlo... pero nada más, ni volver a guardarlo ni añadir un caracter en blanco al final ni nada). Yo para probar el tema de caracteres raros, uso como propuso alguien del foro (igual voy equivocado, pero creo que era Neftali) esta cadena: áéíóúÁÉÍÓÚÜçÇñÑ€~#@ <--- Puede ser más compleja y rara, pero con esto a mi me vale |
|
#3
|
|||
|
|||
|
Cita:
Es decir... creo el XML (factura.xml), firmo ese XML (con los componentes de SecureBlackBox) y tras firmarlo, lo guardo (firmado) como firmado.xml, que es el que envío. Después de firmarlo no he hecho ninguna modificación (salvo guardarlo con otro nombre). Revisaré mañana el contenido del XML por si hay caracteres especiales, pero lo dudo mucho porque estoy usando datos de prueba muy básicos. |
|
#4
|
|||
|
|||
|
Cita:
Creo que El fichero firmado al grabarlo lo modificas: TFileStream.Create('firmado.xml Este problema ya lo han tenido y ha salido en otro post del hilo Última edición por ermendalenda fecha: 04-10-2021 a las 19:42:18. |
|
#5
|
||||
|
||||
|
Cita:
Hemos hablado antes de este error. Revisa mensajes anteriores. Es posible que el contenido se esté modificando, aunque no sea de forma consciente. Revisa si después de firmar el XML hasta que lo envías ha cambiado el contenido (a veces simplemente se guarda con otra codificación). No porque lo hagas tú, sino porque lo haga el propio Delphi en alguno de los pasos (guardar, recuperar,...).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#6
|
|||
|
|||
|
Cita:
A eso es a lo que me refería antes, que una vez firmado, sea cual sea la acción que realices sobre el fichero no se puede modificar nada o habrá errores en la validación de firma. Como bien dice Neftali, no porque uno mismo lo haga, sino el propio delphi o lenguaje usado que pueden "dar por culo" en este sentido sin que uno lo sepa. |
|
#7
|
|||
|
|||
|
Cita:
|
|
#8
|
||||
|
||||
|
Una duda que tengo, y a ver si alguien me sabe responder, ¿como haceis para saber si el servicio-url está activo? Lo digo porque ahora que está caido el servidor de Bizkaia de Pruebas, no tenga que estar esperando al Timeout siempre.
No sé si hay manera o simplemente es asi. |
|
#9
|
|||
|
|||
|
Cita:
Por otro lado puedes hacer una conexión previa con un fichero vacio(esta en este hilo unos cuantos posts atrás) y ponerle un timeout muy corto. O combinar los 2. Última edición por ermendalenda fecha: 05-10-2021 a las 11:22:15. |
|
#10
|
||||
|
||||
|
Cita:
Muchas gracias por todo. |
|
#11
|
|||
|
|||
|
Cita:
1) Reviso si existen facturas anteriores que no se hayan firmado. 2) Si si, se firman por orden y se intenta envío, pero antes de enviar, se comprueba si existen anteriores sin enviar. 3) Si sí, se empiezan a enviar por orden desde la primera sin enviar hasta la última Así no tendría que estar comprobando constantemente si hay conexión o no. ¿Le veis algún problema a este método? |
|
#12
|
|||
|
|||
|
Cita:
Tiene que quedar así: Código:
<?xml version="1.0" encoding="UTF-8"?> <T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"> <Cabecera> <IDVersionTBAI>1.2</IDVersionTBAI> </Cabecera> . . . . <HuellaTBAI> . . . </HuellaTBAI> <ds:Signature . . .. </ds:Signature> </T:TicketBai> http://tools.chilkat.io/xmlDsigVerif...#generatedCode https://web.uanataca.com/pe/servicio...ma-electronica |
|
#13
|
|||
|
|||
|
Cita:
Signature Verified Number of Reference Digests = 2 Reference 1 digest is valid. Reference 2 digest is valid. Según el otro (con la opción que permite comparar el archivo SIN firmar y el firmado): "El documento no ha sido modificado después de la firma" "Certificado de CA confiable" |
|
#14
|
|||
|
|||
|
Cita:
Pueden ser varias cosas. Ve arreglando lo de la primera línea y si te sigue faltando 1 digest revisa paramettos de firma y si está bien edita el fichero con un editor hexadecimal para asegurarte y revisa cada carácter comparándolo con algún xml correcto de los que hayan puesto de ejemplo. |
|
#15
|
|||
|
|||
|
Cita:
Tiene que tener 3 referencias válidas. Fíjate en la respuesta que te puesto de tu archivo firmado. No uso SecureBlackBox, supongo que alguien que lea tu código te ayudará cuando vea el fallo. |
|
#16
|
|||
|
|||
|
Cita:
<?xml version="1.0" encoding="UTF-8"?> No obstante, eso no explica el error "El mensaje ha sido modificado en tránsito o la firma no está bien realizada". De verdad que no sé en qué proceso se puede estar modificando el contenido del archivo. A ver si va a ser porque yo estoy en Canarias y hay algún problema con la diferencia horaria... |
|
#17
|
|||
|
|||
|
Cita:
Como envías el fichero? Lo digo porque yo lo hago con curl y si no usaba este parámetro: --data-binary Se enviaba con alguna modificación y me salía también este mensaje: "El mensaje ha sido modificado en tránsito o la firma no está bien realizada" |
|
#18
|
|||
|
|||
|
Cita:
De todas formas la primera línea es necesaria. Y haz caso eel comentario de Band, lo puede modificar la aplicación que envía si no está bien parametrizada. |
|
#19
|
|||
|
|||
|
El envío lo hago tal como indiqué en el primer mensaje, usando el código encontrado en este hilo:
He probado a comentar la siguiente línea: NetHTTPClient1.CustomHeaders['Charset'] := 'UTF-8'; y ocurre lo mismo. También he añadido manualmente ANTES DE FIRMAR la línea... <?xml version="1.0" encoding="UTF-8"?> ...al XML (Delphi no la añade al generar el xml con el databinding) y obtengo el mismo error. Esta tarde probaré a cambiar la HORA al horario peninsular, a ver si es eso. |
|
#20
|
|||
|
|||
|
Cita:
Lo tienes en c#? si es así puedo mandarte mi código en .Net y si tienes alguna duda puedo ayudarte hasta donde pueda... EDITO: Termino de ver que es delphi,,, pero reitero que yo tenia un problema parecido y era por que luego de firmar no mantenia los espacios. Estas mostrandonos el código donde envias el post, pero creo que el problema está al cargar el XML, o lo que hagas despues de firmarlo. Última edición por Ramon88 fecha: 05-10-2021 a las 16:54:19. |
![]() |
| 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 |
|