Ver Mensaje Individual
  #10  
Antiguo 18-06-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 129
Reputación: 4
tejano Va por buen camino
Cita:
Empezado por luismartin Ver Mensaje
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($chCURLOPT_POST1);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_SSLCERTPATH_TEMP '/client.pem');
    
curl_setopt($chCURLOPT_SSLKEYPATH_TEMP '/key.pem');
    
curl_setopt($chCURLOPT_SSLKEYPASSWD$claveCert);
    
curl_setopt($chCURLOPT_SSL_VERIFYPEER1);
    
curl_setopt($chCURLOPT_POSTFIELDS$gzipStr);
    
curl_setopt($chCURLOPT_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
Responder Con Cita