| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' |
| |
| #***************************************************************************** |
| # |
| # index.php (/friends) |
| # |
| # Author: Nathan Gervais |
| # Date: 2007-11-07 |
| # |
| # Description: Type your page comments here - these are not sent to the browser |
| # |
| # |
| #**************************************************************************** |
| error_reporting(E_ALL); |
| # |
| # Begin: page-specific settings. Change these. |
| $pageTitle = "Thank You"; |
| $pageKeywords = "friends of eclipse, donation, contribution"; |
| $pageAuthor = "Nathan Gervais"; |
| |
| |
| 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"); |
| require_once("/home/data/httpd/eclipse-php-classes/system/authcode.php"); |
| |
| ob_start(); |
| // read the post from PayPal system and add 'cmd' |
| $req = 'cmd=_notify-synch'; |
| |
| $tx_token = $_GET['tx']; |
| $req .= "&tx=$tx_token&at=$auth_token"; |
| |
| |
| // 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); |
| // If possible, securely post back to paypal using HTTPS |
| // Your PHP server will need to be SSL enabled |
| // $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30); |
| |
| if (!$fp) { |
| echo "FsockOpen seems to have failed. <br/>"; |
| } |
| else { |
| fputs ($fp, $header . $req); |
| // read the body data |
| $res = ''; |
| $headerdone = false; |
| while (!feof($fp)) { |
| $line = fgets ($fp, 1024); |
| if (strcmp($line, "\r\n") == 0) { |
| // read the header |
| $headerdone = true; |
| } |
| else if ($headerdone) |
| { |
| // header has been read. now read the contents |
| $res .= $line; |
| } |
| } |
| // parse the data |
| $lines = explode("\n", $res); |
| $keyarray = array(); |
| if (strcmp ($lines[0], "SUCCESS") == 0) { |
| for ($i=1; $i<count($lines);$i++){ |
| list($key,$val) = explode("=", $lines[$i]); |
| $keyarray[urldecode($key)] = urldecode($val); |
| } |
| // 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 = $keyarray['first_name']; |
| $lastname = $keyarray['last_name']; |
| $itemname = $keyarray['item_name']; |
| $amount = $keyarray['payment_gross']; |
| $bugzillaEmail = $keyarray['item_number']; |
| |
| $anonymous = $keyarray['option_selection2']; |
| $comment = strip_tags($keyarray['option_selection1']); |
| $transactionID = $keyarray['txn_id']; |
| $paymentStatus = $keyarray['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); |
| 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(); |
| } |
| } |
| } |
| ?> |
| |
| |
| <div id="midcolumn"> |
| <p><h1>Thank you for your donation!</h1></p> |
| <p>Your transaction has been completed and a receipt for your purchase has been emailed to you.<br/> |
| <div class="homeitem"> |
| <h3><b>Donation Details</b></h3> |
| <ul> |
| <li>Name: <?=$firstname;?> <?=$lastname;?></li> |
| <?if ($bugzillaEmail != "") { ?><li>Bugzilla Login: <?=$bugzillaEmail;?></li> <? } ?> |
| <li>Amount: <?=$amount;?></li> |
| <li>Anonymity: <?=$anonymous;?></li> |
| <li>Comment: <?=$comment;?></li> |
| </ul> |
| <br/><br/><div align="middle"><b style="font-size:120%">View our <a href="http://www.eclipse.org/donate/donorlist.php">Donor List</a></b></div> |
| </div> |
| <? if ($benefit == 1) { ?> |
| <div class="homeitem"> |
| <h3>Friends of Eclipse</h3> |
| <div style="padding-left:5px;"> |
| <p><h2>Login</h2> |
| Visit <a href="http://dev.eclipse.org/site_login">http://dev.eclipse.org/site_login</a> to get access to the Friends of Eclipse Mirror</p> |
| <br/> |
| <p><h2>Logo</h2>If you wish to link to the Friends of Eclipse Logo on your website or blog please use of the codes below</p> |
| <table width="100%"> |
| <tr> |
| <td><img src="http://www.eclipse.org/donate/images/friendslogo.jpg"/></td> |
| <td align="right"><textarea><img src="http://www.eclipse.org/donate/images/friendslogo.jpg"/></textarea></td> |
| </tr> |
| <tr> |
| <td><img src="http://www.eclipse.org/donate/images/friendslogo200.jpg"></td> |
| <td align="right"><textarea><img src="http://www.eclipse.org/donate/images/friendslogo200.jpg"></textarea></td> |
| </tr> |
| <tr> |
| <td><img src="http://www.eclipse.org/donate/images/friendslogo160.jpg"></td> |
| <td align="right"><textarea><img src="http://www.eclipse.org/donate/images/friendslogo160.jpg"></textarea></td> |
| </tr> |
| </table> |
| </div> |
| </div> |
| <? } ?> |
| <div class="clearer"></div> |
| </div> |
| <? |
| } |
| else if (strcmp ($lines[0], "FAIL") == 0) { |
| ?><p>There was an error in processing your transaction. Please contact <a href="mailto:friends@eclipse.org">friends@eclipse.org</a> with the transaction information from PayPal.</p><? |
| } |
| } |
| |
| fclose ($fp); |
| ?> |
| |
| |
| <? $html = ob_get_clean(); |
| # Generate the web page |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); |
| ?> |
| |