Benim Paypal IPN Handler Lütfen inceleyin

1 Cevap php

Onun oyun sunucularında oynamak insanlar, onların bilgilerini girin bağış ve otomatik olarak bir veritabanına eklenebilir ki ben, biri için otomatik bir bağış sistemini yazdı. Onun büyük çalışma, ama im çok php değil saavy, bu yüzden siz bir göz atın ve ben eklemek gerekir başka ne söyleyebilir umuyorum. Ben subscr_eot olduğunu düşünüyorum, abonelik sona erdiğinde bunları kaldırmak gerekir, ama bunu kullanarak herhangi bir iyi örnekler bulamıyor. Ve geri kalanı için ben sadece, göründüğü'Tamam sayesinde umuyorum!

<?php

// database
include_once('config.php');

//Connect
$db_connect = mysql_connect($DB_host, $DB_username, $DB_password) or die(mysql_error());
mysql_select_db($DB_name) or die(mysql_error());

// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value)
{
    $value = urlencode(stripslashes($value));
    $req .= "&$key=$value";
}

// 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 ('www.paypal.com', 80, $errno, $errstr, 30);

// 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'];
$txn_type = $_POST['txn_type'];
$receiver_email = $_POST['receiver_email'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$payer_email = $_POST['payer_email'];
$steam_id = $_POST['custom'];

if ($fp)
{
    fputs ($fp, $header . $req);
    while (!feof($fp))
    {
        $res = fgets ($fp, 1024);
        switch ($res)
        {
            //Payment is Validated
            case 'VERIFIED':

                if(strcmp($payment_status, "Completed") == 0)
                {
                    $firstlast = $first_name[0] . $last_name;
                    $username = strtolower($firstlast);

                    $query = "INSERT INTO sb_admins (user, authid, password, gid, email, validate, extraflags, immunity, srv_group, srv_password) VALUES('". $username ."', '". $steam_id ."', '', -1, '". mysql_real_escape_string($payer_email) ."', 0, 0, 0, '". $sm_group ."', 'password')";
                    mysql_query($query) or die(mysql_error());
                }

                // 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
                break;

            case 'INVALID':

                // PAYMENT INVALID & INVESTIGATE MANUALLY!
                $to      = $receiver_email;
                $subject = 'XA - BattleClan | Invalid Donation';
                $message = '

                Dear Administrator,

                A donation has been made but is flagged as INVALID.
                Please verify the payment manually and contact the donator.

                Donator Email: '.$email.'
                ';
                $headers = 'From:administrator@xa-battleclan.com' . "\r\n";

                mail($to, $subject, $message, $headers);
                break;

            default:
                break;
        }
    }
fclose ($fp);
}

>

1 Cevap

Gelecekte isteyen herkes için, paypal yeniden yöneticisini çağırmak yok. Bu size notify_url seti için var ne olursa olsun url bildirim gönderir.