Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2012, 03:29
danicasas
 
Fecha de Ingreso: abril-2012
Mensajes: 124
Antigüedad: 12 años, 7 meses
Puntos: 3
Problemas con session

Buenos días,
He hecho un botón de paypal usando el pago express, todo funciona bien excepto que cuando compruebo si se ha realizado el pago correctamente no puedo acceder a las variables de session, según parece se ha creado una session nueva y no recupera la anterior.

El código que uso para realizar el pago es el que está en los ejemplos de la web de paypal

Código PHP:
$resArray=hash_call("DoExpressCheckoutPayment",$nvpstr);

...

function 
hash_call($methodName,$nvpStr)
    {
        
//declaring of global variables
        
global $API_Endpoint$version$API_UserName$API_Password$API_Signature;
        global 
$USE_PROXY$PROXY_HOST$PROXY_PORT;
        global 
$gv_ApiErrorURL;
        global 
$sBNCode;

        
//setting the curl parameters.
        
$ch curl_init();
        
curl_setopt($chCURLOPT_URL,$API_Endpoint);
        
curl_setopt($chCURLOPT_VERBOSE1);

        
//turning off the server and peer verification(TrustManager Concept).
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_SSL_VERIFYHOSTFALSE);

        
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
        
curl_setopt($chCURLOPT_POST1);
        
        
//if USE_PROXY constant set to TRUE in Constants.php, then only proxy will be enabled.
       //Set proxy name to PROXY_HOST and port number to PROXY_PORT in constants.php 
        
if($USE_PROXY)
            
curl_setopt ($chCURLOPT_PROXY$PROXY_HOST":" $PROXY_PORT); 

        
//NVPRequest for submitting to server
        
$nvpreq="METHOD=" urlencode($methodName) . "&VERSION=" urlencode($version) . "&PWD=" urlencode($API_Password) . "&USER=" urlencode($API_UserName) . "&SIGNATURE=" urlencode($API_Signature) . $nvpStr "&BUTTONSOURCE=" urlencode($sBNCode);

        
//setting the nvpreq as POST FIELD to curl
        
curl_setopt($chCURLOPT_POSTFIELDS$nvpreq);

        
//getting response from server
        
$response curl_exec($ch);

        
//convrting NVPResponse to an Associative Array
        
$nvpResArray=deformatNVP($response);
        
$nvpReqArray=deformatNVP($nvpreq);
        
$_SESSION['nvpReqArray']=$nvpReqArray;

        if (
curl_errno($ch)) 
        {
            
// moving to display page to display curl errors
              
$_SESSION['curl_error_no']=curl_errno($ch) ;
              
$_SESSION['curl_error_msg']=curl_error($ch);

              
//Execute the Error handling module to display errors. 
        

        else 
        {
             
//closing the curl
              
curl_close($ch);
        }

        return 
$nvpResArray;
    } 
Creo que curl_init() crea una sesión nueva para leer los datos, pero no sé por qué no se cierra bien o no restaura la sesión anterior.