Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Paypal IPN Problems

Canadian
Loyal Member
Joined
Dec 4, 2007
Messages
1,936
Reaction score
96
zVdnW - Paypal IPN Problems - RaGEZONE Forums


Does anyone have any idea why I would be receiving this e-mail?

I'm using a script for Paypal that I found.

P.S. The script works fine, and the payment goes through fine. But then I receive this e-mail after.

PHP:
<?php
include('includes/config.php');
include('includes/functions.php');

    $invoiceid = clean($_GET['invoiceid']);

    $query = mysql_query("SELECT * FROM `orders` WHERE `invoiceid` = '$invoiceid'");
        while($row = mysql_fetch_assoc($query)) {
            $totalcost = $row['totalcost'];
            $email = $row['email'];

// PayPal settings
$paypal_email = 'myemailgoeshere@hotmail.com';
$return_url = 'rsgp.php';
$cancel_url = 'rsgp.php';
$notify_url = 'rsgp.php';
$item_number = 1;
$item_name = 'Runescape Gold';
$item_amount = $totalcost;

}

    $qry = mysql_query("UPDATE `orders` SET `complete` = '1' WHERE `invoiceid` = '$invoiceid'");

// Check if paypal request or response
if (!isset($_POST["txn_id"]) && !isset($_POST["txn_type"])){

    // Firstly Append paypal account to querystring
    $querystring .= "?business=".urlencode($paypal_email)."&";    
    
    // Append amount& currency (£) to quersytring so it cannot be edited in html
    
    //The item name and amount can be brought in dynamically by querying the $_POST['item_number'] variable.
    $querystring .= "item_name=".urlencode($item_name)."&";
    $querystring .= "amount=".urlencode($item_amount)."&";
    
    //loop for posted values and append to querystring
    foreach($_POST as $key => $value){
        $value = urlencode(stripslashes($value));
        $querystring .= "$key=$value&";
    }
    
    // Append paypal return addresses
    $querystring .= "return=".urlencode(stripslashes($return_url))."&";
    $querystring .= "cancel_return=".urlencode(stripslashes($cancel_url))."&";
    $querystring .= "notify_url=".urlencode($notify_url);
    
    // Append querystring with custom field
    //$querystring .= "&custom=".USERID;
    
    // Redirect to paypal IPN
    echo '<meta http-equiv="REFRESH" content="0;url=https://paypal.com/cgi-bin/webscr' . $querystring . '">';
    exit();

}else{
    
    // Response from Paypal

    // read the post from PayPal system and add 'cmd'
    $req = 'cmd=_notify-validate';
    foreach ($_POST as $key => $value) {
        $value = urlencode(stripslashes($value));
        $value = preg_replace('/(.*[^%^0^D])(%0A)(.*)/i','${1}%0D%0A${3}',$value);// IPN fix
        $req .= "&$key=$value";
    }
    
    // assign posted variables to local variables
    $data['item_name']            = $_POST['item_name'];
    $data['item_number']         = $_POST['item_number'];
    $data['payment_status']     = $_POST['payment_status'];
    $data['payment_amount']     = $_POST['mc_gross'];
    $data['payment_currency']    = $_POST['mc_currency'];
    $data['txn_id']                = $_POST['txn_id'];
    $data['receiver_email']     = $_POST['receiver_email'];
    $data['payer_email']         = $_POST['payer_email'];
    $data['custom']             = $_POST['custom'];
        
    // post back to PayPal system 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);    
    
    if (!$fp) {
        // HTTP ERROR
    } else {    

        fputs ($fp, $header . $req);
        while (!feof($fp)) {
            $res = fgets ($fp, 1024);
            if (strcmp($res, "VERIFIED") == 0) {
            
                // Used for debugging
                //@mail("you@youremail.com", "PAYPAL DEBUGGING", "Verified Response<br />data = <pre>".print_r($post, true)."</pre>");
                        
                // Validate payment (Check unique txnid & correct price)
                $valid_txnid = check_txnid($data['txn_id']);
                $valid_price = check_price($data['payment_amount'], $data['item_number']);
                // PAYMENT VALIDATED & VERIFIED!
                if($valid_txnid && $valid_price){                
                    $orderid = updatePayments($data);        
                    if($orderid){                    
                        // Payment has been made & successfully inserted into the Database                                
                    }else{                                
                        // Error inserting into DB
                        // E-mail admin or alert user
                    }
                }else{                    
                    // Payment made but data has been changed
                    // E-mail admin or alert user
                }                        
            
            }else if (strcmp ($res, "INVALID") == 0) {
            
                // PAYMENT INVALID & INVESTIGATE MANUALY! 
                // E-mail admin or alert user
                
                // Used for debugging
                //@mail("you@youremail.com", "PAYPAL DEBUGGING", "Invalid Response<br />data = <pre>".print_r($post, true)."</pre>");
            }        
        }        
    fclose ($fp);
    }    
}
?>
 

Attachments

You must be registered for see attachments list
Last edited:
Pee Aitch Pee
Joined
Mar 30, 2011
Messages
630
Reaction score
422
PHP:
$return_url = 'rsgp.php';
$cancel_url = 'rsgp.php';
$notify_url = 'rsgp.php';

I believe that has to be your full website URL.

PHP:
$return_url = 'http://site.com/rsgp.php';
$cancel_url = 'http://site.com/rsgp.php';
$notify_url = 'http://site.com/rsgp.php';
 
Back
Top