Пример #1
0
 public function loadPost()
 {
     $result = new \Icepay_Postback();
     $result->setMerchantID((string) $this->merchantId)->setSecretCode((string) $this->secretCode);
     try {
         if ($result->validate()) {
             $this->status = new ResponseStatus($result->getStatus());
             $this->statusDescription = $result->getPostback()->statusCode;
             $this->orderId = $result->getOrderID();
             $this->parameters = (array) $result->getPostback();
         } else {
             throw new InvalidResponseException('Could not verify post response data');
         }
     } catch (\Exception $e) {
         throw new ApiException('There was a problem validating the post response', 0, $e);
     }
 }
Пример #2
0
    $Modules = new Modules();
}
$Checkout = Checkout::instance(false);
$temp_data = $Checkout->get_all_data_from_temp_db($temp_orders_id);
//get all orders data
$icepay = new Icepay_Postback();
$icepay->setMerchantID($Icepay->instances[$temp_data[$temp_orders_id]['orders']['payment_method']]['merchant_id'])->setSecretCode($Icepay->instances[$temp_data[$temp_orders_id]['orders']['payment_method']]['secret_code'])->enableLogging()->logToFile(true, realpath("../logs"))->logToScreen();
$data = '';
foreach ($_POST as $key => $value) {
    $data .= $key . ': ' . "\n";
    $data .= $value . "\n\n";
}
tep_db_query('INSERT INTO payment_log (type, data, date) VALUES ("Icepay", "' . $data . '", NOW())');
tep_db_query('DELETE FROM payment_log WHERE date < DATE_SUB(NOW(), INTERVAL 30 DAY)');
try {
    if ($icepay->validate()) {
        if ($temp_data[$temp_orders_id]['orders']['processed_order_id'] > 0) {
            //Update order status
            switch ($icepay->getStatus()) {
                case Icepay_StatusCode::OPEN:
                    //do nothing
                    break;
                case Icepay_StatusCode::SUCCESS:
                    tep_db_query('UPDATE orders SET orders_status = 2 WHERE orders_id = "' . $temp_data[$temp_orders_id]['orders']['processed_order_id'] . '"');
                    Checkout::send_order_error_mail(Translate('Icepay betaling is goedgekeurd voor weborder') . ': ' . $temp_data[$temp_orders_id]['orders']['processed_order_id'], sprintf(Translate('De betaling voor weborder %s is goedgekeurd door Icepay.'), $temp_data[$temp_orders_id]['orders']['processed_order_id']));
                    break;
                case Icepay_StatusCode::ERROR:
                    //Redirect to cart
                    tep_db_query('UPDATE orders SET orders_status = 53 WHERE orders_id = "' . $temp_data[$temp_orders_id]['orders']['processed_order_id'] . '"');
                    Checkout::send_order_error_mail(Translate('Ongeldige Icepay betaling voor weborder') . ': ' . $temp_data[$temp_orders_id]['orders']['processed_order_id'], sprintf(Translate('De betaling voor weborder %s is ongeldig verklaard door Icepay.'), $temp_data[$temp_orders_id]['orders']['processed_order_id']));
                    break;
Пример #3
0
 public function postback()
 {
     $logger = OW::getLogger('ocsbillingicepay');
     $logger->addEntry(print_r($_REQUEST, true), 'postback.data-array');
     if (empty($_REQUEST['Reference'])) {
         $logger->addEntry("Empty reference", 'postback.reference');
         $logger->writeLog();
         exit;
     }
     require_once OW::getPluginManager()->getPlugin('ocsbillingicepay')->getClassesDir() . 'api' . DS . 'icepay_api_basic.php';
     $gwKey = OCSBILLINGICEPAY_CLASS_IcepayAdapter::GATEWAY_KEY;
     $billingService = BOL_BillingService::getInstance();
     $merchantId = $billingService->getGatewayConfigValue($gwKey, 'merchantId');
     $encryptionCode = $billingService->getGatewayConfigValue($gwKey, 'encryptionCode');
     $icepay = new Icepay_Postback();
     $icepay->setMerchantID($merchantId)->setSecretCode($encryptionCode)->doIPCheck();
     try {
         if ($icepay->validate()) {
             $hash = trim($_REQUEST['Reference']);
             $transId = trim($_REQUEST['TransactionID']);
             $sale = $billingService->getSaleByHash($hash);
             if (!$sale || !mb_strlen($transId)) {
                 $logger->addEntry("Sale not found", 'postback.sale');
                 $logger->writeLog();
                 exit;
             }
             $adapter = new OCSBILLINGICEPAY_CLASS_IcepayAdapter();
             if (!$billingService->saleDelivered($transId, $sale->gatewayId)) {
                 $sale->transactionUid = $transId;
                 if ($billingService->verifySale($adapter, $sale)) {
                     $sale = $billingService->getSaleById($sale->id);
                     $productAdapter = $billingService->getProductAdapter($sale->entityKey);
                     if ($productAdapter) {
                         $billingService->deliverSale($productAdapter, $sale);
                     }
                 }
             }
             $logger->addEntry("Validated!", 'validate-status');
         } else {
             $logger->addEntry("Unable to validate postback data", 'validate-status');
         }
     } catch (Exception $e) {
         $logger->addEntry($e->getMessage(), 'validate-exception');
     }
     $logger->writeLog();
     exit;
 }
Пример #4
0
 /**
  * Do the postback validation and finish payment
  * @return bool|\Icepay_Postback
  */
 public function doPostback()
 {
     try {
         $postback = new \Icepay_Postback();
         $postback->setMerchantID($this->merchantID)->setSecretCode($this->secretCode)->doIPCheck();
         if ($postback->validate() && $postback->getStatus() == \Icepay_StatusCode::SUCCESS) {
             return $postback;
         }
     } catch (\Exception $e) {
         \Yii::error($e->getMessage());
     }
     return false;
 }