Foros del Web » Programando para Internet » PHP »

Problema con IPN Paypal

Estas en el tema de Problema con IPN Paypal en el foro de PHP en Foros del Web. Buenas tardes chicos, consegui un codigo ya hecho de ipn paypal con el cual deberia conseguir acreditarle coins a el user que compre x cantidad, ...
  #1 (permalink)  
Antiguo 12/04/2016, 14:55
 
Fecha de Ingreso: julio-2014
Ubicación: Montevideo
Mensajes: 78
Antigüedad: 10 años, 4 meses
Puntos: 2
Pregunta Problema con IPN Paypal

Buenas tardes chicos, consegui un codigo ya hecho de ipn paypal con el cual deberia conseguir acreditarle coins a el user que compre x cantidad, pero hay un problema y es que no funciona. Intente hacerlo yo mismo, pero no pude. Intente pedir ayuda para hacerlo aquí pero solo respondieron un enlace de paypal el cual no entiendo nada! Y por eso ahora les vengo a pedir si pueden revisar el codigo y decirme si configure algo mal, almenos con el IPN simulator de paypal no me esta funcionando

Código PHP:
<?php
include 'logger.php';
include 
'paypalipnconfig.php';
include 
'mysql.class.php';
include 
'mssql.class.php';

$req 'cmd=' urlencode('_notify-validate');
 
foreach (
$_POST as $key => $value) {
    
$value urlencode(stripslashes($value));
    
$req .= "&$key=$value";
}
 
 
$ch curl_init();
curl_setopt($chCURLOPT_URL'https://www.sandbox.paypal.com/cgi-bin/webscr');
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
curl_setopt($chCURLOPT_POSTFIELDS$req);
curl_setopt($chCURLOPT_SSL_VERIFYPEER1);
curl_setopt($chCURLOPT_SSL_VERIFYHOST2);
curl_setopt($chCURLOPT_HTTPHEADER, array('Host: www.paypal.com'));
$res curl_exec($ch);
curl_close($ch);
 
 
// assign posted variables to local variables
$item_name $_POST['item_name'];
$item_number $_POST['item_number'];
$payment_status $_POST['payment_status'];
$payment_amount $_POST['mc_gross'];
$payment_currency $_POST['mc_currency'];
$txn_id $_POST['txn_id'];
$receiver_email $_POST['receiver_email'];
$payer_email $_POST['payer_email'];

$account $_POST['custom'];
if(
$account == 0)
    
$acount 'NO ACCOUNT';
 
$buff sprintf("%s\t%s\t\$%0.2f\t%s\t%s\t%s"$txn_id$payment_status$payment_amount$receiver_email$payer_email$account);
$coins_sent 0;
 
if (
strcmp ($res"VERIFIED") == 0
{
    
// create our db connections
    
$db_mysql = new mysql();
    
$db_mysql->connect();

    
$db_mssql = new mssql();
    
$db_mssql->connect();

    
// check the payment_status is Completed
    
if($payment_status == 'Completed')
    {

        
// check that txn_id has not been previously processed
        
$r $db_mysql->query("SELECT txn_id FROM paypal_logs WHERE txn_id='".$txn_id."';");

        if(
mysql_num_rows($r) == 0)
        {
            
// check that receiver_email is your Primary PayPal email
            
if($receiver_email == PAYPAL_EMAIL)
            {
                
// check that payment_amount/payment_currency are correct
                
$validpackage false;
                for(
$i 0$i count($paypal_packages); ++$i)
                {
                    if(
$paypal_packages[$i][0] == $payment_amount && $payment_currency == CURRENCY)
                    {
                        
$validpackage true;
                        break;
                    }
                }

                
// process payment if valid package
                
if($validpackage)
                {
                    
dbg_log('account = '.$account);

                    
$r $db_mssql->query("SELECT id FROM cuenta WHERE id='".$account."';");

                    if(
mssql_num_rows($r))
                    {
                        
$user_no mssql_fetch_array($r);

                        
mssql_select_db('samp_roleplay');
                        
$r $db_mssql->query("UPDATE cuenta SET creditos = creditos + ".$paypal_packages[$i][1]." WHERE id='".$user_no[0]."';");

                        
// Added coins succesfully!
                        
if($r)
                            
$coins_sent 1;
                        else
                            
dbg_log('ERROR SENDING COINS: '.$buff);
                    }
                    else
                        
dbg_log('ACCOUNT NOT FOUND: '.$buff);

                    
// Add record to MySQL
                    
$db_mysql->query("INSERT INTO paypal_logs VALUES ('".$txn_id."',".$payment_amount.",'".$payer_email."','".$account."',".$paypal_packages[$i][1].",".$coins_sent.",CURRENT_TIMESTAMP);");

                    }
                else
                    
dbg_log('INVALID PACKAGE: '.$buff);
            }
            else
                
dbg_log('INVALID EMAIL: '.$buff);
        }
        else
            
dbg_log('DUPLICATE IPN: '.$buff);
    }
    
}
else if (
strcmp ($res"INVALID") == 0) {
    
// log for manual investigation
     
dbg_log('INVALID IPN: '.$buff);
}

?>
__________________
¿Necesitas Hosting Web? - [JSFIDDLE="www.intechservers.com/hosting"]Intech Servers Hosting[/JSFIDDLE]
¿Necesitas Sitio Web? - [JSFIDDLE="www.intechservers.com/web"]Intech Servers Web[/JSFIDDLE]

Etiquetas: ipn, mysql, paypal, select, sql, variable
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 21:35.