Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #661  
Antiguo 25-05-2021
Galaxian Galaxian is offline
Miembro
 
Registrado: mar 2021
Posts: 52
Poder: 4
Galaxian Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Yo lo veo más sencillo que conservar eso en papel...
Ya, pero eso no hace que el problema deje de existir.
Responder Con Cita
  #662  
Antiguo 25-05-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Galaxian Ver Mensaje
Ya, pero eso no hace que el problema deje de existir.

Lo se. Nuestro trabajo es dar soluciones (más o menos complejas) a esos problemas.
Por eso nos pagan.
__________________
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.
Responder Con Cita
  #663  
Antiguo 25-05-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 128
Poder: 4
tejano Va por buen camino
Buenas tardes, alguien ha probado a enviar datos con el comando de Windows curl?
El programa de gestión que tenemos es bastante antiguo y necesito tirar de programa externos para hacer todo lo que piden.
Si alguno lo ha utilizado podría poner los parámetros que ha puesto
Gracias
Responder Con Cita
  #664  
Antiguo 26-05-2021
batuzail batuzail is offline
Miembro
 
Registrado: feb 2017
Posts: 57
Poder: 8
batuzail Va por buen camino
Memoria TBAI

Hola,
Estoy preaprando la memoria para darnos de alta como software garante. Aún no tengo todo acabado.
Alguien que este usando los componentes de chilckat puede decirme que certificados permite usar?, ya que hay que indicar los tipos de certificados permitidos.
El QR debe aparecer en la parte inferior, pero no se especifica la alineación, el QR se puede alinear libremente?
El Qr debe de aparacer en todas las páginas de factura o solo en la última?

Gracias

Última edición por batuzail fecha: 26-05-2021 a las 08:09:12.
Responder Con Cita
  #665  
Antiguo 26-05-2021
Noe277 Noe277 is offline
Miembro
 
Registrado: jul 2017
Posts: 72
Poder: 7
Noe277 Va por buen camino
cabecera esta mal informada

Buenos días,

Envió el 140 y me dice que la cabecera esta mal informada.
1- No se si se refiere a la cabecera del xml 140 o a los datos de cabecera que mandamos para realizar el envió.
2- El certificado de empresa tiene que coincidir con los datos de la cabecera del envió?

Gracias.
Responder Con Cita
  #666  
Antiguo 26-05-2021
Band Band is offline
Miembro
 
Registrado: may 2021
Posts: 35
Poder: 0
Band Va por buen camino
Yo para el curl creo así los parámetros, y luego ejecuto el curl con shellexecute.

Código Delphi [-]
curlCommand := '-F "data=@' + nombreArchivo + '" ' +  
    ' -H "Content-Type: application/xml;charset=UTF-8" ' + // Si no pongo este content type me da error 415 y en un documento de ellos comentan que se ponga este content type y efectivamente ya no da error 
    ' -H "Accept-Encoding: ''gzip''" ' +
    ' -H "Content-Encoding: ''gzip''" ' +   
    ' -H "eus-bizkaia-n3-version: ''1.0''" ' + 
    ' -H "eus-bizkaia-n3-content-type: ''application/xml''" ' +
    ' -H "eus-bizkaia-n3-data: ' + json + '"' + 
    ' -X POST ' + url ;

Entiendo que es correcto porque el servidor me devuelve la siguiente respuesta:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
<Salida>
<FechaRecepcion>25-05-2021 18:20:50</FechaRecepcion>
<Estado>01</Estado>
<Descripcion>Rechazado</Descripcion>
<Azalpena>Baztertua</Azalpena>
<ResultadosValidacion>
<Codigo>001</Codigo>
<Descripcion>Error: No se ha utilizado certificado de cliente.</Descripcion>
<Azalpena>Errorea: Ez da erabili bezeroaren ziurtagiririk.</Azalpena>
</ResultadosValidacion>
</Salida>
</ns2:TicketBaiResponse>

Lo cual es correcto imagino, ya que no le estoy enviando el certificado. Para enviar el certificado en curl, en teoría sería así:

Código Delphi [-]
--cacert PATH\certificado.crt

Yo ando un poco perdido con el tema del certificado. Sirve enviar uno de prueba? (Me interesa saberlo porqué aqui: web.uanataca.com/es/certificados-prueba se pueden conseguir. También hay otros sitios) Lo que pasa es que cuando envio uno de estos certificados me sigue dando el mismo error y tengo mis dudas de si no lo envío bien o realmente no és válido (tampoco sé si debe ser crt, pem). Alguien me puede contestar a esto?

Por cierto, soy nuevo en el foro y pido perdón por si no he puesto bien las etiquetas del código.

Muchas gracias.
Responder Con Cita
  #667  
Antiguo 26-05-2021
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 372
Poder: 5
Sistel Va por buen camino
Cita:
Empezado por Noe277 Ver Mensaje
...
2- El certificado de empresa tiene que coincidir con los datos de la cabecera del envió?
...
Hola,

Si el certificado utilizado para firmar no es de la empresa o autónomo que emite la factura, es preciso añadir:
Código:
<EmitidaPorTercerosODestinatario>T</EmitidaPorTercerosODestinatario>
Dentro del nodo <Sujetos>
"T" es el valor de la clave L4 de la página 15 del documento de especificaciones de TicketBAI

Saludos
Responder Con Cita
  #668  
Antiguo 26-05-2021
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 372
Poder: 5
Sistel Va por buen camino
Cita:
Empezado por Band Ver Mensaje
...
<Descripcion>Error: No se ha utilizado certificado de cliente.</Descripcion>
<Azalpena>Errorea: Ez da erabili bezeroaren ziurtagiririk.</Azalpena>
Hola,

Lo mismo de mi respuesta anterior a Noe277
Si el certificado utilizado para firmar no es de la empresa o autónomo que emite la factura, es preciso añadir:
Código:
<EmitidaPorTercerosODestinatario>T</EmitidaPorTercerosODestinatario>
Dentro del nodo <Sujetos>
"T" es el valor de la clave L4 de la página 15 del documento de especificaciones de TicketBAI

Saludos
Responder Con Cita
  #669  
Antiguo 26-05-2021
Noe277 Noe277 is offline
Miembro
 
Registrado: jul 2017
Posts: 72
Poder: 7
Noe277 Va por buen camino
Cita:
Empezado por Sistel Ver Mensaje
Hola,

Si el certificado utilizado para firmar no es de la empresa o autónomo que emite la factura, es preciso añadir:
Código:
<EmitidaPorTercerosODestinatario>T</EmitidaPorTercerosODestinatario>
Dentro del nodo <Sujetos>
"T" es el valor de la clave L4 de la página 15 del documento de especificaciones de TicketBAI

Saludos
Eso es correcto si hablamos del fichero Ticketbai.xml yo me refería al 140.xml en el que incrusto el gz de los tickets.

Código:
request.Headers["eus-bizkaia-n3-data"] = "{\"con\": \"LROE\", \"apa\": \"1.1\", \"inte\": {\"nif\": \"" + Nif + "\",\"nrs\":\"" + RazonSocial + "\",\"ap1\": \"" + apellido1 + "\",\"ap2\": \"" + apellido2+ "\"},\"drs\": { \"mode\": \"140\",\"ejer\": \"" + ejercicioPROVISIONAL + "\"}};";
Mi pregunta es si el Nif que mando aquí tiene que corresponder con el certificado a la hora de hacer el envio.
Responder Con Cita
  #670  
Antiguo 26-05-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Noe277 Ver Mensaje
Envió el 140 y me dice que la cabecera esta mal informada.

¿Cual es el código y el mensaje exacto del error?
__________________
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.
Responder Con Cita
  #671  
Antiguo 26-05-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.282
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Band Ver Mensaje
Yo ando un poco perdido con el tema del certificado. Sirve enviar uno de prueba?
Alguien me puede contestar a esto?
Puedes usar certificados de prueba. Desde la web de Izenpe creo que se pueden descargar algunos.
Eso te servirá para avanzar un paso más y saber si lo envía correctamente, pero entonces obtendrás un error de este estilo:

<012 - Aviso: Error en verificación alta-inscripción software TicketBAI: los datos de registro no coinciden.>

Que significa que el certificado llega bien, pero no "cuadra" con los datos que tienen ellos.

Al final, para poder enviar facturas y que te las acepten, debes usar un certificado "bueno", que coincida con los datos de empresa y que "cuadre" con los datos que tienen ellos (hay que darlos de alta).


Cita:
Empezado por Band Ver Mensaje
Por cierto, soy nuevo en el foro y pido perdón por si no he puesto bien las etiquetas del código.
__________________
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.
Responder Con Cita
  #672  
Antiguo 26-05-2021
Avatar de HerensugeBeltz
HerensugeBeltz HerensugeBeltz is offline
Miembro
 
Registrado: may 2021
Ubicación: Hondarribia
Posts: 88
Poder: 3
HerensugeBeltz Va por buen camino
Hola a todos!

Me acaban de endosar la adaptación a TicketBAI de una pequeña aplicación de facturación. Hemos adquirido los componentes SecureBlackBox2020 y ya tengo dos prototipos de prueba: uno de firma del XML y otro para el envío TLS del XML firmado a la Hacienda de Gipuzkoa.

Adelanto ya que nunca he tenido que pelearme con certificados digitales y todo esto es nuevo para mí.
La duda que me surge es que, tanto para la firma como para el envío, al cargar el certificado tengo que especificar su contraseña. Entiendo que la firma del XML debe ser automática, sin que intervenga el usuario. ¿Hay alguna forma de firmar o enviar el documento firmado sin que el usuario tenga que indicar su contraseña en, por ejemplo, una pantalla de configuración de la aplicación?

Muchas gracias.

Nota: soy nuevo en el foro y no he encontrado una opción de nuevo mensaje, por lo que he pulsado en respuesta rápida. SI he hecho mal que alguien me corrija.
Responder Con Cita
  #673  
Antiguo 26-05-2021
Noe277 Noe277 is offline
Miembro
 
Registrado: jul 2017
Posts: 72
Poder: 7
Noe277 Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Al final, para poder enviar facturas y que te las acepten, debes usar un certificado "bueno", que coincida con los datos de empresa y que "cuadre" con los datos que tienen ellos (hay que darlos de alta).

Gracias. Pensábamos que no tenían por que coincidir con la cabecera del envió.

En cuanto a HerensugeBeltz. Nosotros guardamos en local el certificado que vamos a usar para que no nos lo pida cada vez, aunque la contraseña si la pide. Hay maneras de instalar el certificado para que no pida la contraseña pero esto ya es externo a la aplicación es mas del almacén de certificados.
Responder Con Cita
  #674  
Antiguo 26-05-2021
luismartin luismartin is offline
Miembro
 
Registrado: may 2021
Posts: 18
Poder: 0
luismartin Va por buen camino
Cita:
Empezado por canfora Ver Mensaje
Buenos días,

Me acabo de poner con la programación en php para el envío de XML a TBAI a Gipuzkoa.
Estoy utilizando el código que sugerís a continuación y recibo en todo momento el siguiente error:
"
No se puede conectar con la TBAI GIP.

Error: unable to use client certificate (no key found or wrong pass phrase?)

Respuesta de la TBAI GIP: 312
"
Tengo un certificado pfx, el cual indico en la línea de declaración del CURLOPT_SSLCERT y añado la siguiente linea:
curl_setopt($soap_do, CURLOPT_SSLCERTPASSWD, $pass);

Si utilizo una conexión más sencilla, como la que indico a continuación, recibo el siguiente error:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXML);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

ERROR:
"
01
Rechazado
Baztertua

001
Error: No se ha utilizado certificado de cliente.
Errorea: Ez da erabili bezeroaren ziurtagiririk.
"

Muchísimas gracias por vuestra ayuda.

Hola Canfora, a ver si esto te puede ayudar, ya que llegué a ese punto, y finalmente la conexión me la validó (aunque ahora estoy con otro problema):
como te indica Bilbur, debes usar un certificado de tipo PEM, pero según he hecho yo, generando 3 ficheros PEM por separado (usando el comando openssl): el del cliente, el de la clave privada, y el de la autoridad certificadora:

Cita:
openssl pkcs12 -in abcd.pfx -out ca.pem -cacerts -nokeys
openssl pkcs12 -in abcd.pfx -out client.pem -clcerts -nokeys
openssl pkcs12 -in abcd.pfx -out key.pem -nocerts
No he podido poner el enlace de la fuente por ser un usuario nuevo Y lo que tampoco tengo aún claro, es cómo hacer esta conversión de forma automática, sin necesidad de user input.

Al final, el código de la petición cURL es este:

Código PHP:
        $xmlStr file_get_contents($rutaFacturaXML);
        
        
$ch curl_init($url);
        
curl_setopt($chCURLOPT_POST1);
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
curl_setopt($chCURLOPT_SSLCERTPATH_TEMP '/client.pem');
        
curl_setopt($chCURLOPT_SSLKEYPATH_TEMP '/key.pem');
        
curl_setopt($chCURLOPT_CAINFOPATH_TEMP '/ca.pem');
        
curl_setopt($chCURLOPT_SSLKEYPASSWD$clave);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEER1);
        
curl_setopt($chCURLOPT_POSTFIELDS$xmlStr);
        
curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: application/xml; charset=utf-8')); 
        
$resp curl_exec($ch); 
Responder Con Cita
  #675  
Antiguo 26-05-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 128
Poder: 4
tejano Va por buen camino
Cita:
Empezado por Band Ver Mensaje
Yo para el curl creo así los parámetros, y luego ejecuto el curl con shellexecute.

Código Delphi [-]
curlCommand := '-F "data=@' + nombreArchivo + '" ' +  
    ' -H "Content-Type: application/xml;charset=UTF-8" ' + // Si no pongo este content type me da error 415 y en un documento de ellos comentan que se ponga este content type y efectivamente ya no da error 
    ' -H "Accept-Encoding: ''gzip''" ' +
    ' -H "Content-Encoding: ''gzip''" ' +   
    ' -H "eus-bizkaia-n3-version: ''1.0''" ' + 
    ' -H "eus-bizkaia-n3-content-type: ''application/xml''" ' +
    ' -H "eus-bizkaia-n3-data: ' + json + '"' + 
    ' -X POST ' + url ;

Entiendo que es correcto porque el servidor me devuelve la siguiente respuesta:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
<Salida>
<FechaRecepcion>25-05-2021 18:20:50</FechaRecepcion>
<Estado>01</Estado>
<Descripcion>Rechazado</Descripcion>
<Azalpena>Baztertua</Azalpena>
<ResultadosValidacion>
<Codigo>001</Codigo>
<Descripcion>Error: No se ha utilizado certificado de cliente.</Descripcion>
<Azalpena>Errorea: Ez da erabili bezeroaren ziurtagiririk.</Azalpena>
</ResultadosValidacion>
</Salida>
</ns2:TicketBaiResponse>

Lo cual es correcto imagino, ya que no le estoy enviando el certificado. Para enviar el certificado en curl, en teoría sería así:

Código Delphi [-]
--cacert PATH\certificado.crt

Yo ando un poco perdido con el tema del certificado. Sirve enviar uno de prueba? (Me interesa saberlo porqué aqui: web.uanataca.com/es/certificados-prueba se pueden conseguir. También hay otros sitios) Lo que pasa es que cuando envio uno de estos certificados me sigue dando el mismo error y tengo mis dudas de si no lo envío bien o realmente no és válido (tampoco sé si debe ser crt, pem). Alguien me puede contestar a esto?

Por cierto, soy nuevo en el foro y pido perdón por si no he puesto bien las etiquetas del código.

Muchas gracias.
Gracias, creo que me servirá parte de lo que has puesto.

Si miras el documento de ESPECIFICACIONES FUNCIONALES Y TECNICAS DEL ENVIO MASIVO DEL LROE, en la página 17 y 18 verás:
Para el LROE, se deben incluir en la cabecera HTTP de la petición obligatoriamente los siguientes parámetros con los valores que se indican a continuación:
▪ Accept-Encoding = gzip.
▪ Content-Encoding = gzip.
▪ Content-Length = tamaño del cuerpo del mensaje.
▪ Content-Type = application/octet-stream.
▪ eus-bizkaia-n3-version = 1.0.
▪ eus-bizkaia-n3-content-type = application/xml.
▪ eus-bizkaia-n3-data = contenido del fichero json.
Json - eus-bizkaia-n3-data = { "con": "LROE", "apa": "1.1", "inte": { "nif": "número de identificación fiscal", "nrs": "nombre o Razón social", "ap1": "primer apellido", "ap2": "segundo apellido" }, "drs": { "mode": "140/240", "ejer": "ejercicio" } }

Creo que te falta el content-length, el content-Type creo que esta mal y por lo demás todo OK.

Una cosilla para todos, si sabéis...... el LROE de facturas recibidas hay que comprimir el fichero en formato gzip?

Gracias
Responder Con Cita
  #676  
Antiguo 26-05-2021
luismartin luismartin is offline
Miembro
 
Registrado: may 2021
Posts: 18
Poder: 0
luismartin Va por buen camino
(002) Error: No se permite firma Enveloping.

Hola a todos, soy nuevo en el foro, aunque ya lo llevo usando un tiempo, y me ha sido de gran ayuda para la generación de las facturas TBAI.

El problema con el que me encuentro ahora, es que al realizar el envío, recibo este error:

Código:
(002) Error: El fichero de alta TicketBAI no cumple el esquema XSD. No se permite firma Enveloping.
En la documentación de TBAI, vi que esto se debe a que la firma que genero, se hace en formato Enveloping, cuando debería ser Enveloped.

Para la generación de la firma en el documento, utilizo el comando de la aplicación Autofirma, con las siguientes opciones:

Código:
autofirma  sign -i ruta/fichero.xml -o ruta/fichero.firmado.xml -format xades -store pkcs12:certificado.pfx -password ***** -filter "imported"
El fichero generado, fichero.firmado.xml, pasa la validación de estos validadores que he encotrado en este mismo hilo:
Uno de chilkat
Y otro de uanataca (lo siento, aún no puedo poner enlaces al ser usuario nuevo)

Posteriormente, vi el mensaje #470 en el hilo, y añadí la opción que indica poner:
Código:
-config="format=XAdES Enveloped\npolicyIdentifier=h......"
Pero al hacerlo, recibo el error de formato no permitido.

Alguien sabría decirme qué más debo hacer para obtener la firma en el formato Enveloped??

Gracias!
Responder Con Cita
  #677  
Antiguo 26-05-2021
Band Band is offline
Miembro
 
Registrado: may 2021
Posts: 35
Poder: 0
Band Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Puedes usar certificados de prueba. Desde la web de Izenpe creo que se pueden descargar algunos.
Eso te servirá para avanzar un paso más y saber si lo envía correctamente, pero entonces obtendrás un error de este estilo:

<012 - Aviso: Error en verificación alta-inscripción software TicketBAI: los datos de registro no coinciden.>

Que significa que el certificado llega bien, pero no "cuadra" con los datos que tienen ellos.

Al final, para poder enviar facturas y que te las acepten, debes usar un certificado "bueno", que coincida con los datos de empresa y que "cuadre" con los datos que tienen ellos (hay que darlos de alta).




Gracias! Tiraré por este camino de los certificados de prueba de Izenpe (solo para probar el envío del certificado). Después ya me haré con uno "bueno" para seguir con los errores de validación del xml que puedan haber, que seguro que los habrá xD
Responder Con Cita
  #678  
Antiguo 26-05-2021
Band Band is offline
Miembro
 
Registrado: may 2021
Posts: 35
Poder: 0
Band Va por buen camino
Cita:
Empezado por tejano Ver Mensaje
Gracias, creo que me servirá parte de lo que has puesto.

Si miras el documento de ESPECIFICACIONES FUNCIONALES Y TECNICAS DEL ENVIO MASIVO DEL LROE, en la página 17 y 18 verás:
Para el LROE, se deben incluir en la cabecera HTTP de la petición obligatoriamente los siguientes parámetros con los valores que se indican a continuación:
▪ Accept-Encoding = gzip.
▪ Content-Encoding = gzip.
▪ Content-Length = tamaño del cuerpo del mensaje.
▪ Content-Type = application/octet-stream.
▪ eus-bizkaia-n3-version = 1.0.
▪ eus-bizkaia-n3-content-type = application/xml.
▪ eus-bizkaia-n3-data = contenido del fichero json.
Json - eus-bizkaia-n3-data = { "con": "LROE", "apa": "1.1", "inte": { "nif": "número de identificación fiscal", "nrs": "nombre o Razón social", "ap1": "primer apellido", "ap2": "segundo apellido" }, "drs": { "mode": "140/240", "ejer": "ejercicio" } }

Creo que te falta el content-length, el content-Type creo que esta mal y por lo demás todo OK.

Una cosilla para todos, si sabéis...... el LROE de facturas recibidas hay que comprimir el fichero en formato gzip?

Gracias

Cierto, falta el content-length pero de momento no se me ha quejado de esto. Si me da algún tipo de problema ya lo pondré. El content-type ya digo, yo tuve que cambiar el "application/octet-stream" por "application/xml;charset=UTF-8". Esto lo encontré en algún documento de FAQ para desarrolladores (concretamente el documento se llama "Problemas y dudas frecuentes en servicios de alta y anulación de facturas"). Lo encontré de chiripa poniendo "ticket bai error 415" en google
Responder Con Cita
  #679  
Antiguo 26-05-2021
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 372
Poder: 5
Sistel Va por buen camino
Cita:
Empezado por luismartin Ver Mensaje
Código PHP:
        $xmlStr file_get_contents($rutaFacturaXML);
        
        
$ch curl_init($url);
        
curl_setopt($chCURLOPT_POST1);
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
curl_setopt($chCURLOPT_SSLCERTPATH_TEMP '/client.pem');
        
curl_setopt($chCURLOPT_SSLKEYPATH_TEMP '/key.pem');
        
curl_setopt($chCURLOPT_CAINFOPATH_TEMP '/ca.pem');
        
curl_setopt($chCURLOPT_SSLKEYPASSWD$clave);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEER1);
        
curl_setopt($chCURLOPT_POSTFIELDS$xmlStr);
        
curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: application/xml; charset=utf-8')); 
        
$resp curl_exec($ch); 
Hola luismartin,

Cuando ya tienes convertido el certificado a formato PEM, ya no necesitas la clave.
Puedes quitar la línea curl_setopt($ch, CURLOPT_SSLKEYPASSWD, $clave);
Tampoco se necesita el certificado CA de la Autoridad Certificadora.
Así que puede quitar también curl_setopt($ch, CURLOPT_CAINFO, PATH_TEMP . '/ca.pem');

Saludos
Responder Con Cita
  #680  
Antiguo 26-05-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 128
Poder: 4
tejano Va por buen camino
Cita:
Empezado por luismartin Ver Mensaje
Hola a todos, soy nuevo en el foro, aunque ya lo llevo usando un tiempo, y me ha sido de gran ayuda para la generación de las facturas TBAI.

El problema con el que me encuentro ahora, es que al realizar el envío, recibo este error:

Código:
(002) Error: El fichero de alta TicketBAI no cumple el esquema XSD. No se permite firma Enveloping.
En la documentación de TBAI, vi que esto se debe a que la firma que genero, se hace en formato Enveloping, cuando debería ser Enveloped.

Para la generación de la firma en el documento, utilizo el comando de la aplicación Autofirma, con las siguientes opciones:

Código:
autofirma  sign -i ruta/fichero.xml -o ruta/fichero.firmado.xml -format xades -store pkcs12:certificado.pfx -password ***** -filter "imported"
El fichero generado, fichero.firmado.xml, pasa la validación de estos validadores que he encotrado en este mismo hilo:
Uno de chilkat
Y otro de uanataca (lo siento, aún no puedo poner enlaces al ser usuario nuevo)

Posteriormente, vi el mensaje #470 en el hilo, y añadí la opción que indica poner:
Código:
-config="format=XAdES Enveloped\npolicyIdentifier=h......"
Pero al hacerlo, recibo el error de formato no permitido.

Alguien sabría decirme qué más debo hacer para obtener la firma en el formato Enveloped??

Gracias!
Te doy las instrucciones para la DBF con la línea de comando de autofirma "autofirmacommandline"

AutoFirmaCommandLine.exe sign
-i nombre_fichero
-o nombre_fichero_firmado
-store pkcs12:nombre_certificado.p12
-password contraseña_certificado
-filter nombre_certificado.p12
-format xades -xml
-config "format=XAdES Enveloped
\npolicyIdentifier=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
\npolicyIdentifierHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
\npolicyIdentifierHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256
\npolicyQualifier=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf

A mi me funciona bien, aunque tarda unos 3 sg por cada fichero.

Esto lo pusieron en el foro hace algún tiempo y me ayudo mucho.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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 3549 Hace 1 Día 08:22:30
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


La franja horaria es GMT +2. Ahora son las 12:43:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi