blob: 1a224063f4481c21cde874418de4883ac253fe2b [file] [log] [blame]
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); $App = new App();
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/classes/friends/friend.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/classes/friends/contribution.class.php");
// 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.1\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);
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
// 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
// echo the response
echo "The response from IPN was: <b>" .$res ."</b><br><br>";
//loop through the $_POST array and print all vars to the screen.
foreach($_POST as $key => $value){
// echo $key." = ". $value."<br>";
}
// 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
$firstname = $_POST['first_name'];
$lastname = $_POST['last_name'];
$itemname = $_POST['item_name'];
$amount = $_POST['payment_gross'];
$bugzillaEmail = $_POST['item_number'];
$anonymous = $_POST['option_selection2'];
$comment = strip_tags($_POST['option_selection1']);
$transactionID = $_POST['txn_id'];
$paymentStatus = $_POST['payment_status'];
if ($anonymous == "Public")
{
$anonymousValue = 0;
}
else
{
$anonymousValue = 1;
}
if ($amount >= 35)
{
$benefit = 1;
}
if (strpos($amount, ".") == 0)
{
$amount = $amount . ".00";
}
if ($paymentStatus == "Completed")
{
// Check to see if this transaction has already been processed.
$checkContribution = new Contribution();
$checkTrans = $checkContribution->selectContributionExists($transactionID);
echo "$transactionID - $checkTrans";
if ($checkTrans == FALSE)
{
//Check to see if user already exists in friends
$checkFriends = new Friend();
$bugzillaID = $checkFriends->getBugzillaIDFromEmail($bugzillaEmail);
$friendID = $checkFriends->selectFriendID("bugzilla_id", $bugzillaID);
if ($friendID != 0)
{
// Lets Update the Friend Information
$newFriend = new Friend();
$newFriend->setFirstName($firstname);
$newFriend->setLastName($lastname);
$newFriend->setBugzillaID($bugzillaID);
$newFriend->setIsAnonymous($anonymousValue);
$newFriend->setIsBenefit($benefit);
$newFriend->setFriendID($friendID);
$newFriendID = $newFriend->insertUpdateFriend();
// FriendID does not equal 0 so we have an existing user. We need to add a new contribution
$insertContribution = new Contribution();
$insertContribution->setFriendID($friendID);
$insertContribution->setAmount($amount);
$insertContribution->setMessage($comment);
$insertContribution->setTransactionID($transactionID);
$insertContribution->insertContribution();
//Record Inserted
}
else {
// No friendID found so add a new friend record then add the contribution record.
$newFriend = new Friend();
$newFriend->setFirstName($firstname);
$newFriend->setLastName($lastname);
$newFriend->setBugzillaID($bugzillaID);
$newFriend->setIsAnonymous($anonymousValue);
$newFriend->setIsBenefit($benefit);
$newFriendID = $newFriend->insertUpdateFriend();
$insertContribution = new Contribution();
$insertContribution->setFriendID($newFriendID);
$insertContribution->setAmount($amount);
$insertContribution->setMessage($comment);
$insertContribution->setTransactionID($transactionID);
$insertContribution->insertContribution();
}
}
else {
echo "Transaction Check Failed<br/>";
}
}
}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
// echo the response
echo "The response from IPN was: <b>" .$res ."</b>";
}
}
fclose ($fp);
}
$html = ob_get_clean();
echo $html;
?>