Ver Mensaje Individual
  #675  
Antiguo 26-05-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 129
Reputación: 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