![]() |
![]() |
| 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:
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 |
|
#2
|
|||
|
|||
|
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" |
|
#3
|
|||
|
|||
|
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. |
|
#4
|
|||
|
|||
|
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. |
|
#5
|
|||
|
|||
|
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... |
|
#6
|
|||
|
|||
|
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" |
|
#7
|
|||
|
|||
|
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. |
|
#8
|
|||
|
|||
|
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. |
|
#9
|
|||
|
|||
|
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. |
|
#10
|
|||
|
|||
|
Cita:
2. No entiendo lo de "falta un digest". Si el problema está en el código de la firma (con SecureBlackBox), el código lo he sacado de este mismo hilo, y creo que es el mismo que se usaba para FacturaE (que, por cierto, publiqué yo mismo hace años) 3. He tenido que usar un editor HEX online para comparar ambos archivos: el firmado y el sin firmar, y he encontrado una diferencia: Archivo SIN firmar (factura.xml): <CabeceraFactura> <SerieFactura></SerieFactura> <NumFactura>164</NumFactura> Archivo firmado (firmado.xml) <CabeceraFactura> <SerieFactura/> <NumFactura>164</NumFactura> ¿A donde ha ido el </SerieFactura> que falta? ¿Acaso el proceso de firma quita ese dato? A simple vista es lo único que falta, salvo eso de que me "falta un digest". Si el código que he usado es el que está en este hilo (aquí), no entiendo lo del digest. |
|
#11
|
|||
|
|||
|
Cita:
Que </nombre de campo> No he mirado si las especificaciones indican que mejor no ponerlo que ponerlo vacío en caso de no usar la serie. Ya lo único que veo es que pongas un ejemplo de unxml firmado(cambiando datos sensibles) para que lo repasemos. |
|
#12
|
|||
|
|||
|
Cita:
veo campos vacios: firmante.r_ID := ''; firmante.r_Metodo_Canonicalization := ''; Y deberia haber un Algoritmo del Metodo canonizador, etc,etc.. ...CanonicalizationMethod:="http://www.w3.org/TR/2000/WD-xml-c14n-20000710"; ....EnableXAdES := True; ...XAdESVersion :=... .XAdESForm :=... |
|
#13
|
|||
|
|||
|
Cita:
sbxXAdESSigner1.SignatureType := cxstEnveloped; sbxXAdESSigner1.CanonicalizationMethod := cxcmCanon; sbxXAdESSigner1.HashAlgorithm := firmante.r_Hash_algorithm; // SHA256 sbxXAdESSigner1.XMLElement := ''; // Todo el documento sbxXAdESSigner1.EnableXAdES := True; sbxXAdESSigner1.XAdESVersion := xav132; sbxXAdESSigner1.XAdESForm := xafEPES; sbxXAdESSigner1.Config('SigPolicyID=' + firmante.r_SigPolicyID); // https://ticketbai.eus/politicafirma'); sbxXAdESSigner1.Config('SigPolicyHash=' + firmante.r_SigPolicyHash); // 39D59C038EBB3B7DF6C61ED2F740B318F0C50F93ADCD35E26BE8FF8E76D21DA8; sbxXAdESSigner1.Config('SigPolicyHashAlgorithm=' + firmante.r_SigPolicyHashAlgorithm); //=SHA256; sbxXAdESSigner1.Config('SigPolicyURI=' + firmante.r_SigPolicyURI); //https://ticketbai.eus/politicafirma; |
|
#14
|
|||
|
|||
|
Además de la desaparición de </SerieFactura> en el archivo firmado, que no tengo ni idea de por qué ocurre (y ni siquiera sé si eso solucionará el problema), he estado usando varios editores de texto avanzados (no el bloc de notas) que me dicen la codificación de los archivos generados.
He estado haciendo pruebas, cambiando la codificación antes, después, en el propio XMLDocument, etc. y obtengo resultados diferentes. De hecho, el propio componente de firma de SecureBlackBoxpermite especificar la codificación del archivo resultante. Haciendo varias pruebas he conseguido que el XML incluya la línea... <?xml version="1.0" encoding="UTF-8"?> pero el archivo firmado la incluye así: <?xml version="1.0" encoding="utf-8"?> (utf-8 en minúsculas) Pero no quiero seguir haciendo pruebas si finalmente el problema va a estar en algo más simple, como que falta el cierre de </SerieFactura> en el XML firmado y no sé por qué. Eso sí sería una causa más que probable para que me devuelva el error que me está dando desde hace días. |
![]() |
| 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 |
|