Ver Mensaje Individual
  #108 (permalink)  
Antiguo 05/03/2015, 14:05
ljbautista
 
Fecha de Ingreso: junio-2010
Ubicación: Puebla, Pue.
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: [APORTE] file_get_contents(), cURL, HTTP_Request

Quisiera saber si se puede enviar datos con cURL por POST y redirigir a la pagina del otro servidor para mostrar lo que se envio.

En un carro de compras al final tengo un Form para que se ingresen los datos del comprador, ahi cuando se le da comprar tengo que hacer tres acciones:

1. Guardar en mi BD lo del Formulario (nombre, mail, direccion, etc) y el contenido del carrito que es variables de session.
2. Liberar la Session
3. Enviar por POST los datos d ela compra a PayPal

Los dos primeros puntos ya los hago pero el tercer punto no me queda, no se si cURL me permita redireccionar a la pagina de PayPal con los datos de mi compra

Código PHP:
#guardarBD_enviarPaypal.php
session_start();
if(isset(
$_SESSION['carrito'])) {
    
$datos=$_SESSION['carrito'];
    
$total=0;
    
$campos='';
    for(
$i=0;$i<count($datos);$i++){ $total=$total+($datos[$i]['Cantidad']*$datos[$i]['Precio']);}

    if(
$total>0){

        
//Aqui guardo en la BD todos que me llegaron por POST y los datos que ya estaban en la Session Carrito; Y despues libero la Session
               
....

        
//Armo la cedana de los campos que se enviaran con cURL
        
$campos.= 'cmd=_cart&upload=1&[email protected]&currency_code=USD';
        for(
$i=0;$i<count($datos);$i++){
            
$campos.="&item_name_".($i+1)."=".$datos[$i]['Nombre']."&amount_".($i+1)."=".$datos[$i]['Precio']."&quantity_".($i+1)."=".$datos[$i]['Cantidad'];
         }
     
$ch curl_init('https://www.sandbox.paypal.com/cgi-bin/webscr');
        
curl_setopt ($chCURLOPT_POST1);
        
curl_setopt ($chCURLOPT_POSTFIELDS,$campos);
        
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
        
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
        
//curl_setopt($ch, CURLOPT_HEADER, TRUE);
        
$respuesta curl_exec ($ch);
        
//$error = curl_error($ch);
        
curl_close ($ch);
        echo 
$respuesta;
    }

No se si este haciendo lo correcto, me refiero a que si cURL es lo que debo usar o tal vez tenga que usar otra alternativa???

De antemano gracias!