![]() |
![]() |
| 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
|
|||
|
|||
|
¿Alguien sabe si el encadenamiento con la factura anterior es relativo o absoluto? es decir, si se encadena con la última factura de su serie o con la última generada sea de la serie que sea?
|
|
#2
|
|||
|
|||
|
Cita:
Se encadena con la última generada sea de la serie que sea |
|
#3
|
|||
|
|||
|
PHP Generación del xml
Generación previa a su firma
En mi caso sólo vendo bienes, no servicios La intención es ver la estructura del xml Código PHP:
Seguimos con el encadenamiento dentro del mismo script Busco la factura firmada anterior Código PHP:
Código PHP:
Queda enviar el desarrollo de la firma donde intervienen XmlTools.php, firmador.php y el certificado de firma y su clave. |
|
#4
|
|||
|
|||
|
PHP Firma del xml
Nos hemos quedado aquí:
Código PHP:
XmlTools.php: Código PHP:
Este es el importante: firmador.php Código PHP:
Es posible que algo sobre pero no me atrevo a tocar nada ya que finciona bien. Proximamente hablaremos del envío de los xml firmados a GIP y a BIZ, este último tiene su miga. A vuestra disposición para comentar y aclarar lo que requiráis Sería bueno poder firmar sólo con los .pem y sin clave de certificado pero quizás no se pueda. Un saludo |
|
#5
|
|||
|
|||
|
¡¡¡¡ Genial, Bilbur !!!!
Estaba atrancado con el tema de la firma. No conseguía firmar el XML sin errores. Seguro que con tu clase Firmador, salgo, por fín, del atolladero. ¡¡¡ Muchísimas Gracias !!! Apunta que te debo alguna, para cuando acabe la pandemia. Un cordial saludo Última edición por Sistel fecha: 02-05-2021 a las 19:15:30. |
|
#6
|
|||
|
|||
|
Cita:
Si necesitas ayuda en la implementación, me dices. No sea que se me olvidara subir algo. Para comprobar las firmas y antes de enviarlas yo utilizo estos dos enlaces http://tools.chilkat.io/xmlDsigVerify.cshtml https://web.uanataca.com/pe/servicio...ma-electronica Si te da correcto en las dos validaciones pues ¡eureka! |
|
#7
|
|||
|
|||
|
PHP Envío a TBAI GIP
Os adjunto lo que tengo hecho para el envío a Gipuzkoa
Este envío es el más sencillo Más o menos lo que hago es:
Código PHP:
En este lo más interesante puede ser la generación de la url del mensaje TBAI para verlo como si se tratara del código QR Código PHP:
Comentamos ... |
|
#8
|
|||
|
|||
|
Cita:
Lo primero de todo, gracias por compartir el código de PHP, y a todos los miembros del hilo por que se aclaran muchas dudas que se va generando durante el desarrollo. Llevo ya un tiempo con esto y la firma de momento es con diferencia lo que mas problema me esta dando, y tras probar tu codigo la cuestión es: Y si no da correcto en ninguna validación?? Estoy usando un certificado de empresa con extensión p12 pero creo que ese no es el problema, y ya no se que mas hacer, he intentado comparar con un archivo TicketBAI que de ejemplo que me descargue de ello y ese si que pasa la validación pero por mas que los comparo no entiendo muy bien el problema. Signature is Invalid Number of Reference Digests = 3 Reference 1 digest is invalid because the computed digest differs from the digest in the XML. Reference 2 digest is invalid because the computed digest differs from the digest in the XML. Reference 3 digest is valid. ¿Podrías confirmarme si el código que tienes puesto te genera correctamente la firma o decirme si te ha pasado algo similar? Muchas gracias. |
|
#9
|
|||
|
|||
|
Aupa,
Alguien ha implementado la clase firmador que hizo bilbur? yo no consigo validar los documentos. Al enviarlo a BATUZ me arroja el siguiente error: Código:
La firma no cumple los requisitos de la política de firma TicketBAI.(El mensaje ha sido modificado en tránsito o la firma no está bien realizada Código:
Signature is Invalid Number of Reference Digests = 3 Reference 1 digest is invalid because the computed digest differs from the digest in the XML. Reference 2 digest is invalid because the computed digest differs from the digest in the XML. Reference 3 digest is valid. |
|
#10
|
|||
|
|||
|
Gracias bilbur!
todo esto me ha permitido continuar con el proceso, pero me encuentro un contratiempo con el qr. Para generar el código QR es necesario los 13 primeros caracteres de la firma, en ocasiones la firma contiene caracteres como + y al entrar la url para batuz muestra que es incorrecta. No encuentro nada (o al menos no lo he visto) que limite qué caracteres usar o no, o si hubiera que reemplazarlos. |
|
#11
|
|||
|
|||
|
Cita:
te explico el código de la dirección qr para GIP $caracterSeparador = '-' // el guión medio o tecla del menos $cif_340 = cif de la empresa 9 dígitos $dd$mm$aaa = dia mes año sin separador // 12052021 $SignatureValueFirmaFacturaActua = substr($SignatureValueFirmaFacturaActual,0,13); // 13 primeras posiciones $TBAIID = utf8_encode($TBAIID); // lo codificas a utf8 $cod_crc8 = crc8($TBAIID); // calculas el crc8 $TBAIID = $TBAIID.$cod_crc8; // se lo añades a la cadena TBAIID $msg_TBAI = $url_TBAI_QR.'?id='.$TBAIID.'&s='.serie.'&nf='.numero.'&i='.$importe; // creas el enlace TBAI $msg_TBAI = utf8_encode($msg_TBAI); // otra vez a utf8 $cod_crc8 = crc8($msg_TBAI); // calculas el nuevo crc8 $msg_TBAI = $msg_TBAI.'&cr='.$cod_crc8; // y se lo añades al enalce Código PHP:
'https://tbai.prep.gipuzkoa.eus/qr/?id=TBAI-B09203993-210421-YQw6BwvgmOe9h-235&s=FR&nf=000115&i=-5.44&cr=012' Este enlace funciona |
|
#12
|
|||
|
|||
|
Eso mismo es lo que hago, aquí pongo 2 ejemplos:
OK: https_//batuz.eus/QRTBAI/?id=TBAI-79732487C-120521-ME4g0D7g/iyVk-038&s=HB202105&nf=00020&i=382.67&cr=189 KO: https_//batuz.eus/QRTBAI/?id=TBAI-79732487C-120521-Kv+9Uth14cqcj-236&s=HS202105&nf=00021&i=1209.10&cr=121 Los datos de la URL son incorrectos (ERR_QR_003) el 3er carácter de la firma es + "Kv+9Uth14cqcj" y el + en una url por GET suele ser un espacio. parte de la firma en el xml: ....<ds:SignatureValue Id="xmldsig-118aebca-ded6-937b-16cd-782aa4431aab-sigvalue">Kv+9Uth14cqcjZzk286K7h+FLkm8W5UHukR8+GJkmRvJyKV3..... |
|
#13
|
|||
|
|||
|
Estoy usando la librería PHP que publicó Bilbur, la cual es de gran ayuda para la generación de la firma xades enveloped mediante PHP (a la mierda java y Autofirma!).
Sin embargo, lo que estoy recibiendo ahora, es un código http 503, pero con respuesta XML por parte del servidor, en la cual se indica: Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision"> <Salida> <FechaRecepcion>27-05-2021 11:38:02</FechaRecepcion> <Estado>01</Estado> <Descripcion>Rechazado</Descripcion> <Azalpena>Baztertua</Azalpena> <ResultadosValidacion> <Codigo>006</Codigo> <Descripcion>Error inesperado en la verificación del certificado remitente.</Descripcion> <Azalpena>Ustekabeko errorea bidaltzailearen ziurtagiria egiaztatzean.</Azalpena> </ResultadosValidacion> </Salida> </ns2:TicketBaiResponse> Sabéis algo de esto? |
|
#14
|
|||
|
|||
|
Cita:
' --cert-type P12 --cert sello_entidad_act.p12:IZDesa2021 ' En este caso es un certificado de izenpe de prueba que cualquiera se puede descargar. En el xml tengo puesto también, dentro de <Sujetos>: <EmitidaPorTercerosODestinatario>T</EmitidaPorTercerosODestinatario> Tal y como muy bien se me aconsejó. El servicio no parece caído, por lo que si alguien soluciona este tema que comente el motivo o solución que haya encontrado. |
|
#15
|
|||
|
|||
|
Lo primero, darte las gracias por compartir el código. Estoy utilizando tu firmador para realizar la firma pero me da error 008 todo el rato. He probado enviando otro documento firmado con otra aplicación que tengo en c# y me realiza el envío sin errores por lo que algo en el proceso de firmado debe de estar incorrecto pero no consigo ver el que. Estas utilizando esta misma versión que subiste y te funciona correctamente?
|
|
#16
|
|||
|
|||
|
Cita:
La versión que utilizo es la misma y funciona correctamente. Parece ser un error de verificación de firma. Si quieres, envía un xml sin datos (con las cabeceras TBAI) y lo firmo y compruebo. Un saludo |
|
#17
|
|||
|
|||
|
Cita:
te dejo mi plantilla de xml por si puedes revisármela.(no me deja incluir enlaces el foro) Código:
<xml version="1.0" encoding="UTF-8">
<T:AnulaTicketBai xmlns:T="urn:ticketbai:anulacion" xmlns:xsi="......w3.org/2001/XMLSchema-instance" xsi:schemaLocation=".......w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">
<Cabecera>
<IDVersionTBAI>1.2</IDVersionTBAI>
</Cabecera>
<IDFactura>
<Emisor>
<NIF>XXXXXX</NIF>
<ApellidosNombreRazonSocial>XXXXXXXX</ApellidosNombreRazonSocial>
</Emisor>
<CabeceraFactura>
<SerieFactura>Factura Compra</SerieFactura>
<NumFactura>2021205346</NumFactura>
<FechaExpedicionFactura>29-07-2021</FechaExpedicionFactura>
</CabeceraFactura>
</IDFactura>
<HuellaTBAI>
<Software>
<LicenciaTBAI>TBAIGIPRE000000000000</LicenciaTBAI>
<EntidadDesarrolladora>
<NIF>XXXXXXXXX</NIF>
</EntidadDesarrolladora>
<Nombre>XXXXXXXX</Nombre>
<Version>1.2</Version>
</Software>
</HuellaTBAI>
</T:AnulaTicketBai>
|
|
#18
|
|||
|
|||
|
Cita:
Chequea, primero, el XML firmado con https://tools.chilkat.io/xmlDsigVerify.cshtml Así te aseguras si está correctamente firmado. Saludos |
|
#19
|
|||
|
|||
|
Gracias ya conseguí solucionarlo,
Me faltaban el los xsi al principio del documento. Código:
<?xml version='1.0' encoding='UTF-8'?><T:TicketBai xmlns:T='urn:ticketbai:emision'
xmlns:xsi='....w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='......w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd'>
|
|
#20
|
||||
|
||||
|
Cita:
Nosotros encadenamos con la última factura independientemente de la serie. (gracias por la corrección bilbur)
__________________
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. Última edición por Neftali [Germán.Estévez] fecha: 03-05-2021 a las 14:00:08. |
![]() |
| 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 |
|