Search code examples
phppaypalpaypal-ipn

Paypal IPN Detect Refund, PHP


I'm doing some custom work on the iDev affiliate paypal IPN and I am trying to set up a catch for refunded items. I have my database work correct, but I can't seem to get the IF catch right.

Any advise on what I should change it to?

if($_REQUEST["payment_status"] == "refunded"||$testing==1) 
{
    $email = $_REQUEST["payer_email"];
    $sid = $_REQUEST["subscr_id"];
    $tid = $_REQUEST["txn_id"];

    if (!$tid)
    {
        $tid='xxx';
    }

    if ($testing==1)
    {
        echo  "testing on";
        $sid = "I-E5E34E0DTMUS"; 
    }

    $query = "SELECT * FROM idevaff_sales WHERE tid1='$tid'";
    $result = mysql_query($query);
    if (!$result)
    {
        //echo $query; exit;
        mail('***@gmail.com',"1",$query); 
    }

    $arr = mysql_fetch_array($result);
    $aid = $arr['id'];

    $query = "SELECT * FROM idevaff_affiliates WHERE tid1='$tid'";
    $result = mysql_query($query);
    if ($result)
    {
        //echo $query; 
        mail('***@gmail.com',"2","$query"); 
    }

    $arr = mysql_fetch_array($result);
    $email = $arr['email'];
    $f_name = $arr['f_name'];

    mail($email,"Affiliate Message - A refund has granted for recent affiliate commission.","Dear $f_name,  \n\n Message here about refund" );

    $query = "UPDATE idevaff_sales SET approved=3 WHERE tracking='$sid'";
    $result = mysql_query($query);
    if (!$result)
    {
        //echo $query; exit;
        mail('***@gmail.com',"3","$query"); 
    }
}

Hudson


Solution

  • Here is what I ended up using successfully:

    if($_REQUEST["payment_status"] == "Refunded" || $_REQUEST["payment_status"] == "Reversed"  || $testing==1)  
    {
        /*do database work here*/
    }