$sessionRequired = true; $sessionAllowed = true; $customSessionVarsToRetrieve = array("PayPalTxnDetails"); include "Header.php"; include_once "classes/PayPalMsgHandler.class.php"; include_once "classes/PayPalUser.class.php"; // If redirected to this page from PDTHandler after error, set error message $errMsg = ""; if (isset($_GET['error'])) { if ($_GET['error'] == "PDTError") { $errMsg = "There was a problem retrieving your completed transaction details -- please log out, then log in again, to check your current membership status. "; } } // Retrieve PayPal transaction details, if redirected to this page from a PayPal message handler $replyMsg = PayPalTxnMsg::ConstructDefaultMsg(); $payPalUser = PayPalUser::constructDefaultPayPalUser(); $numDaysTillNextCycle = 0; $isRecurringArticleClass = ""; $extendArticleClass = ""; if (isset($customSessionVars) && count($customSessionVars) > 0) { // Get transaction details $replyMsg = $customSessionVars["PayPalTxnDetails"]; $replyMsg->SubscriptionIsRecurring = true; // If new signup, we can assume subscription is recurring $extendArticleClass = "hidden"; // Look up PayPal user info for this user $payPalMsgHandler = new PayPalMsgHandler(); $payPalUser = $payPalMsgHandler->LookUpPayPalUserByUserId($dataAccess, $logger, $objUser->UserID); // If transaction details message is available, need to update related session variables $sessionDataAccess = new DataAccess(); $sessionHandler = new DBSessionHandler($sessionDataAccess);
public function LookUpPayPalUserByPayerId($dataAccess, $logger, $payerID, $subscriptionID = "-1") { $getUserQuery = "SELECT `ID`, IFNULL(`SubscriptionType`, '') AS SubscriptionType, IFNULL(`SubscriptionAmtTotal`, 0) AS SubscriptionAmtTotal, " . "IFNULL(`SubscriptionAmtPaidLastCycle`, 0) AS SubscriptionAmtPaidLastCycle, IFNULL(`SubscriptionStartedDate`, '') AS SubscriptionStartedDate, " . "IFNULL(`SubscriptionModifiedDate`, '') AS SubscriptionModifiedDate, IFNULL(`LastBillDate`, '') AS LastBillDate, " . "IFNULL(`MembershipExpirationDate`, '') AS MembershipExpirationDate, `IsRecurring`, `IsActive`, `SubscriptionID`, `FK_User_ID` " . "FROM `Payments.PayPalUsers` " . "WHERE (`PayerId` = :payerId) AND (`SubscriptionID` != :subscrID) " . "ORDER BY `SubscriptionStartedDate` DESC LIMIT 1;"; $parmPayerId = new QueryParameter(':payerId', $payerID, PDO::PARAM_STR); $parmSubscrId = new QueryParameter(':subscrID', $subscriptionID, PDO::PARAM_STR); $queryParms = array($parmPayerId, $parmSubscrId); $payPalUser = PayPalUser::constructDefaultPayPalUser(); if ($dataAccess->BuildQuery($getUserQuery, $queryParms)) { $results = $dataAccess->GetSingleResult(); if ($results != null) { $payPalUser = new PayPalUser($results['ID'], $results['FK_User_ID'], $results['IsActive'] == 1, $results['IsRecurring'] == 1, $results['LastBillDate'], $results['MembershipExpirationDate'], $payerID, $results['SubscriptionType'], $results['SubscriptionAmtTotal'], $results['SubscriptionAmtPaidLastCycle'], $results['SubscriptionStartedDate'], $results['SubscriptionModifiedDate'], $results['SubscriptionID']); } } $errors = $dataAccess->CheckErrors(); if (strlen($errors) > 0) { $logger->LogError(sprintf("Could not retrieve information associated with payer ID '%s'. %s", $payerID, $errors)); } return $payPalUser; }