Cita:
Empezado por Band
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" ' + ' -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