Example #1
0
 public static function Instance()
 {
     if (self::$_instance === null) {
         self::$_instance = new modMessages();
     }
     return self::$_instance;
 }
Example #2
0
} else {
    if ($donation_data['donation_id'] > 0 && !in_array($donation_data['donation_id'], (array) $_SESSION['did'])) {
        CommonFunc::redirect(DonationConfig::get('site_url'));
    }
}
$messageData = array();
if ($donation_data['status_id'] == clsAbstractStatusCodes::COMPLETED) {
    $messageData = array('heading' => 'Thank you!', 'message' => 'Payment has been processed successfully.');
} else {
    if ($donation_data['status_id'] == clsAbstractStatusCodes::PENDING_REVIEW) {
        $messageData = array('heading' => 'Thank you!', 'message' => 'Payment needs to be reviewed.');
    } else {
        $messageData = array('heading' => 'Thank you for your request.', 'message' => 'Your request has been submitted successfully. Payment Status: <strong>' . ucfirst($donation_data['status_id']) . '</strong>');
    }
}
$msgs = modMessages::Instance()->render();
if ($msgs != '') {
    $messageData['message'] = $msgs;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Donation Status</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" media="screen" href="assets/style.css" /> 
<script type="text/javascript" src="assets/scripts/jquery.min.js"></script>
<script type="text/javascript" src="assets/scripts/common/jquery.scrollTo-min.js"></script>
</head>

<body>
 protected function _success()
 {
     if ($this->_test_mode) {
         $this->getPayPal()->enableTestMode();
     }
     $txn_data = (array) $this->getPayPal()->validate_pdt($_GET['tx'], $this->PaymentSettings('pdt_auth_code'));
     $_POST = array_merge($_GET, $txn_data);
     $invoice = explode("_", $_POST['invoice']);
     $donation_id = (int) $invoice[0];
     $_POST['donation_id'] = $donation_id;
     $link = 'donation.php?d=' . $donation_id;
     if ($txn_data['status'] == 'FAIL') {
         modMessages::Instance()->error("Transaction couldn't be verified. Invalid donation request");
         commonFunc::redirect($this->getLink($link));
     }
     $this->getPayPal()->validate_pdt($tx_token, $auth_token);
     $this->getPayPal()->set_ipn_data($txn_data);
     $donation_data = $this->DonationData($donation_id);
     if ($donation_data['donation_id'] == 0) {
         modMessages::Instance()->error("Invalid donation request");
         commonFunc::redirect($this->getLink($link));
     }
     $donation_id_collection = array();
     if (isset($_SESSION['did']) && is_array($_SESSION['did'])) {
         $donation_id_collection = $_SESSION['did'];
     }
     $donation_id_collection[] = $_POST['donation_id'];
     $_SESSION['did'] = $donation_id_collection;
     if ($donation_data['status_id'] == clsAbstractStatusCodes::COMPLETED) {
         modMessages::Instance()->info("Donation already processed.");
         CommonFunc::redirect($this->getLink($link));
         exit;
     }
     $this->getModel()->logDonationTransactionData($txn_data, $donation_data['donation_id']);
     $payment_status = strtolower($txn_data['payment_status']);
     if ($payment_status == '') {
         $payment_status = clsAbstractStatusCodes::PENDING_REVIEW;
     }
     $link = 'donation.php?d=' . $donation_id;
     if ($payment_status == clsAbstractStatusCodes::COMPLETED) {
         $business = urldecode($txn_data['business']);
         if ($business != $this->PaymentSettings('merchant_email')) {
             $payment_status = clsAbstractStatusCodes::PENDING_REVIEW;
             modMessages::Instance()->error("Merchant couldn't be verified");
         } else {
             if ($txn_data['mc_gross'] != $donation_data['amount']) {
                 $payment_status = clsAbstractStatusCodes::PENDING_REVIEW;
                 modMessages::Instance()->error("Donation couldn't be verified. Amount mis-matched!");
             } else {
                 $payment_status = clsAbstractStatusCodes::COMPLETED;
                 modMessages::Instance()->success("Payment successfully processed. Thank you!");
                 $donation_data['status_id'] = $payment_status;
                 if (Settings::Get('enable_email')) {
                     $this->_payment_completed_mail($donation_data);
                 }
             }
         }
     } else {
         modMessages::Instance()->error("Payment Status: " . $payment_status . " - Payment couldn't be processed");
     }
     $this->getModel()->UpdateStatus($payment_status, $donation_id);
     CommonFunc::redirect($this->getLink($link));
 }