Foros del Web » Programando para Internet » PHP »

problema con las IPN

Estas en el tema de problema con las IPN en el foro de PHP en Foros del Web. Llevo ya un rato sin entender que pasa. El problema es que consigo realizar el pago, se le restan las cantidades a quien compra y ...
  #1 (permalink)  
Antiguo 17/04/2012, 07:02
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
problema con las IPN

Llevo ya un rato sin entender que pasa. El problema es que consigo realizar el pago, se le restan las cantidades a quien compra y aumenta quien vende, sin embargo con las IPN no hay forma (momentáneamente lo hago mediante sandbox con el típico Test Accounts)

ya lo he hecho otras veces con otros ecommerce pero aquí me estoy quedando

Además en el sandbox aparece perfectamente:
IPN successfully sent. al poner la url del listener.

El script es el propio que proporciona paypal en la documentación tecnica.
¿Puede deberse a tenerlo alojado por ahora en un server gratuito y que este impida el fsockopen? ¿o es problema del script?
Si fuera que no entra simplemente en la función mail... pero he cambiado eso por escribir en un archivo y tampoco.

Cualquier ayuda/consejo es bienvenido
¿Alguien acostumbrado a los ecommerce?

Dejo el script por si acaso haya algo que se me escapase

Código PHP:
<?php 
        
    error_reporting
(E_ALL E_NOTICE); 
    
$email $_GET['ipn_email']; 
    
$header ""$emailtext "";
    
    
// Read the post from PayPal and add 'cmd'
    
$req 'cmd=_notify-validate';
    if(
function_exists('get_magic_quotes_gpc')) {  $get_magic_quotes_exists true; } 

    
// Handle escape characters, which depends on setting of magic quotes
    
foreach ($_POST as $key => $value)
    {
        if(
$get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1)
        {
            
$value urlencode(stripslashes($value));
        } 
        else
        {     
            
$value urlencode($value); 
        }
        
$req .= "&$key=$value";
    } 
    
    
// Post back to PayPal to validate
    
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
    
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    
$header .= "Content-Length: " strlen($req) . "\r\n\r\n";
    
//$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
    
    
$fp fsockopen ('ssl://www.sandbox.paypal.com'443$errno$errstr30);
    
// Process validation from PayPal // TODO: This sample does not test the HTTP response code. All 
    // HTTP response codes must be handled or you should use an HTTP 
    // library, such as cUrl 
    
if (!$fp)
    { 
        
// HTTP ERROR
        //escribimos en un archivo
        
if( $fp fopen('comments.dat','w') ){
            
fwrite($fp'fallo q t pego'.PHP_EOL);
            
fclose($fp);
        }        
    } 
    else
    { 
            
// NO HTTP ERROR 
        
fputs ($fp$header $req);
            
        while (!
feof($fp)) { 
            
$res fgets ($fp1024);
            if (
strcmp ($res"VERIFIED") == 0)
            {     
                
// TODO:     
                // Check the payment_status is Completed
                // Check that txn_id has not been previously processed
                // Check that receiver_email is your Primary PayPal email
                // Check that payment_amount/payment_currency are correct
                // Process payment
                // If 'VERIFIED', send an email of IPN variables and values to the     
                // specified email address
                    
                
foreach ($_POST as $key => $value){
                    
$emailtext .= $key " = " .$value ."\n\n";
                }
                    
                
//mail($email, "Live-VERIFIED IPN", $emailtext . "\n\n" . $req);
                
mail('[email protected]'"Live-VERIFIED IPN"$emailtext "\n\n" $req);    
            }
            else if (
strcmp ($res"INVALID") == 0)
            {     
                
// If 'INVALID', send an email. TODO: Log for manual investigation.     
                
foreach ($_POST as $key => $value){
                    
$emailtext .= $key " = " .$value ."\n\n";
                }     
                
//mail($email, "Live-INVALID IPN", $emailtext . "\n\n" . $req);
                
mail('[email protected]'"Live-INVALID IPN"$emailtext "\n\n" $req);
             }
        }
    } 
    
fclose ($fp);
?>
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #2 (permalink)  
Antiguo 20/04/2012, 23:14
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: problema con las IPN

Tu problema es demasiado específico para el foro, además parece que ya tienes experiencia en estos temas, te recomiendo un foro especializado o bien directamente pedir soporte a tu proveedor, saludos.
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: ipn, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:29.