![]() |
![]() |
| 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
|
|||
|
|||
|
Cita:
1. Una vez firmado no lo paso a UTF-8, solo antes. 2. Prueba a cambiar esto en la Cabecera: xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd" 3: Las politicas de firma no cuadran con las mias, falta el digest: "name" => "Politica de firma TicketBAI 1.0", "url" => "https://www.gipuzkoa.eus/ticketbai/sinadura", "digest" => "dTtPpv4fWTcejeVx7+91ILruFX3HysbngBlllJm4i/E=" |
|
#2
|
|||
|
|||
|
Cita:
Cambiando el xsi:schemaLocation del XML por "http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd" en vez de "urn:ticketbai:emision ticketBaiV12.xsd" no afecta al resultado. Obtengo el mismo error 008 de mi anterior post. Por cierto, en mi anterior post al convertir el texto a código Delphi se comió parte del código. Esto es lo que hago para cambiar la cabecera del XML, una vez generado: .... FicheroCorregir.Text := AnsiReplaceStr(FicheroCorregir.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">'); FicheroCorregir.Text := AnsiReplaceStr(FicheroCorregir.Text,'</TicketBai>', '</T:TicketBai>'); .... No he entendido lo de las políticas de firma y que falta el digest... Antes solo puse parte del código, para resumir. Pongo ahora el resto, si es que te refieres a esta parte: firmante.r_Nombre_firma := nom_emp_emisora; firmante.r_ID := ''; firmante.r_Metodo_Canonicalization := ''; firmante.r_Hash_algorithm := 'SHA256'; firmante.r_SigPolicyHashAlgorithm := 'SHA256'; //Gipuzkoa firmante.r_SigPolicyID := 'https://www.gipuzkoa.eus/ticketbai/sinadura'; firmante.r_SigPolicyHash := 'e8daca026eb4a3bbbad85510c3365ec36e2b6b6bdef4f4506300b6d4033a227d'; //6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0= convertido a HEX es e8daca026eb4a3bbbad85510c3365ec36e2b6b6bdef4f4506300b6d4033a227d firmante.r_SigPolicyURI := 'https://www.gipuzkoa.eus/ticketbai/sinadura'; Utilizo los componentes de SecureBlackBox 2020 para la firma. Alguna pista? |
|
#3
|
|||
|
|||
|
Ese error la mayoría de las veces es por que hay caracteres extraños o el uri ml definido(que no parece el caso?) Edita el fichero antes de firmarlo con mswordpad. No pases utf8 firmalo y envíalo.
Si quieres mandar el xml par que lo repasemos cambiándole los datos... |
|
#4
|
|||
|
|||
|
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? |
|
#5
|
|||
|
|||
|
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 |
|
#6
|
|||
|
|||
|
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. |
|
#7
|
|||
|
|||
|
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. |
|
#8
|
||||
|
||||
|
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. |
|
#9
|
|||
|
|||
|
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 |
|
#10
|
|||
|
|||
|
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" |
|
#11
|
|||
|
|||
|
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. |
|
#12
|
|||
|
|||
|
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. |
|
#13
|
|||
|
|||
|
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... |
|
#14
|
|||
|
|||
|
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" |
|
#15
|
|||
|
|||
|
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. |
|
#16
|
|||
|
|||
|
Cita:
A mi me pasaba algo aprecido y era por que al pasarlo a una variable luego lo ponía todo en 1 linea. Código:
Dim xmlDoc As New XmlDocument xmlDoc.PreserveWhitespace = True xmlDoc.Load(pathXML) |
![]() |
| 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 |
|