PHP - cUrl 200 ok,但空白页面和响应

时间:2018-02-09 07:31:56

标签: php curl

谢谢你的时间。 我试图连接到API并发送一些信息。我得到200好,但页面是空白的,没有错误报告,这是我的代码。

 <?php
error_reporting(E_ALL);

//estructura del xml a enviar (Nota de venta)
    $xml="<?xml version='1.0' encoding='utf-8'?>
<Comprobante sistema='ECOPIPO' rfcEmisor='ECO151106ED3' sucursal='Matriz'
permiteAgregarProductosNoInv='0' folioAutofacturacion='1111111111' formaDePago='01'
observacion='Prueba POST' referencia='Desde POST' subtotal='1000' descuento='0' porcentajeIVA='16'
montoIVA='160' total='1160' monedaSinube='MXN' difZonaHoraria='-5'>
<Receptor rfc='AAA010101AAA' razonSocial='Prueba Nota Venta' esPersonaFisica='0'/>
<Conceptos>
<Concepto productoSinube='PROD001' descripcion='Producto de prueba' cantidad='1' unidadSinube='PZA'
valorUnitario='1000' descuento='0' tipoIVA='Causa IVA' montoBaseIVA='1000' montoIVA='160'
importe='1000' subtotalDet='1000'/>
</Conceptos>
</Comprobante>";

   //primeros 5 parámetros
   $parametro1  = "tipo=7"."\n";
   $parametro2  = "emp=RFC"."\n";
   $parametro3  = "suc=Matriz"."\n";
   $parametro4  = "usu=COTABLE"."\n";
   $parametro5  = "pwd=M7HBEQ6A"."\n";
   $parametro6  = "zh=-6"."\n";

  //parámetros encriptados
    $parametros= base64_encode(utf8_encode($parametro1.$parametro2.$parametro3.$parametro4.$parametro5.$parametro6));
    $url='http://ep.facturanube.appspot.com/blob?par='.$parametros; //url con parámetros encriptados

     //se configura el header tipo xml
  $header = array('Content-Type: text/xml','application/xml;charset=UTF-8','application/x-www-form-urlencoded','Content-length: ' . strlen($xml));
  $connection = curl_init();
  curl_setopt($connection, CURLOPT_URL, $url);
  curl_setopt($connection, CURLOPT_HTTPHEADER, $header);
  curl_setopt($connection, CURLOPT_POST, true);
  curl_setopt($connection, CURLOPT_POSTFIELDS,$xml);//le mando el xml
  curl_setopt($connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($connection, CURLOPT_CONNECTTIMEOUT, 40000);
$output = curl_exec($connection);
  if(curl_errno($connection)){
        print curl_error($connection);
    }
  print_r(curl_getinfo($connection));
    curl_close($connection);
   return $output; //imprimo la nota de venta


    $prueba = 'Probando chingadera';
    echo $prueba;


?>

我得到一个空白页面,我尝试了很多变化,但似乎没有任何效果,这是我最接近完成某项工作。

此外,我发现连接结束后没有任何内容运行。我看不到另一件事我已经回应了

我开始认为这不起作用。如果你能检查我的代码,看看我有什么错误,我真的很感激。

谢谢

2 个答案:

答案 0 :(得分:1)

我可以在您的代码中找到的一点是您的标题不正确。

$header = array(
    'Content-Type: text/xml; charset=utf-8',
    'Content-length: ' . strlen($xml)
);

我还建议您查看参数。

答案 1 :(得分:1)

感谢您的帮助。我看到了问题所在,它直接在我的xml文件中,它没有得到所需的参数。我改变了,但允许我这样做的是在卷曲结束之前打印输出,如下所示:

 $output = curl_exec($connection);
 echo $output;

我真的很感谢你的帮助