18-06-2021
|
Miembro
|
|
Registrado: dic 2020
Posts: 129
Reputación: 4
|
|
Cita:
Empezado por luismartin
Buenos días. Conseguido funcionamiento en entorno de pruebas de Gipuzkoa.
Ahora estoy peleándome con Batuz y el LROE (Bizkaia). Pero sólo obtengo errores 400 del servidor. No consigo que acepte las peticiones. ¿ Alguien sabría decirme el por qué? Creo seguir las especificaciones.
Para los de PHP (aunque no creo que sea difícil de entender por otros). Este es el código de la petición, a ver si alguien ha pasado por este trance ya:
Código PHP:
// codificamos a gzip la cadena XML del LROE,
// la cual contiene a su vezl el XML del TicketBAI codificado en base64, conforme a las especificaciones
$gzipStr = gzencode($xmlStr);
$cabeceras = array(
'Accept-Encoding: gzip',
'Content-Encoding: gzip',
'Content-Length: ' . mb_strlen($gzipStr),
'Content-Type: application/octet-stream',
'eus-bizkaia-n3-version: 1.0.',
'eus-bizkaia-n3-content-type: application/xml',
'eus-bizkaia-n3-data: {"con": "LROE", "apa": "1.1", "inte": {"nif": "' .
$nif . '","nrs":"' .
$nombre . '"},"drs": {"mode": "240","ejer": "' . $ejercicio . '"}}',
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSLCERT, PATH_TEMP . '/client.pem');
curl_setopt($ch, CURLOPT_SSLKEY, PATH_TEMP . '/key.pem');
curl_setopt($ch, CURLOPT_SSLKEYPASSWD, $claveCert);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $gzipStr);
curl_setopt($ch, CURLOPT_HTTPHEADER, $cabeceras);
$resp = curl_exec($ch);
Vi un post en la web de Batuz indicando que ayer día 17, el entorno de pruebas no estaba operativo, con lo cual, di por sentado que era eso. Pero hoy me encuentro con el mismo error. Y ya me estoy planteando si es que hay algún problema en mi petición.
No sé si el problema puede estar en la compresión a GZIP. Uso gzencode, pero también he probado con gzcompress y gzdeflate, con igual resultado.
|
A ver si te sirve como lo envío yo
curl --insecure --cert-type P12 --cert nombre_certificado:contraseña_certificado -H "Accept-Encoding:gzip" -H "Content-Encoding:gzip" -H "Content-Type:application/octet-stream" -H "eus-bizkaia-n3-version:1.0" -H "eus-bizkaia-n3-content-type:application/xml" -H "eus-bizkaia-n3-data:{\"con\":\"LROE\",\"apa\":\"1.1\",\"inte\":{\"nif\":\"CIF\",\"nrs\":\"NOMBRE_EMPRESA\"},\"drs\" :{\"mode\":\"240\",\"ejer\":\"2021\"}}" -v "https://pruesarrerak.bizkaia.eus/N3B4001M/kontsulta" --data-binary "@c:\tmp\consulta.gz" --output c:\tmp\respuesta.gz -D c:\tmp\cabecera.txt
y me funciona bien, comprimo con el 7z
Saludos
|