Exemple #1
0
 public function poll()
 {
     if (isset($_POST["xmlmsg"])) {
         $rooturl = cmsController::getInstance()->getCurrentDomain()->getHost();
         $xml_string = base64_decode($_POST["xmlmsg"]);
         $parse_it = simplexml_load_string($xml_string);
         if ($parse_it->OrderStatus[0] == "APPROVED") {
             $new_order_twpg = l_mysql_query('SELECT * FROM `umi_twpg` WHERE umi_id = ' . $this->order->getId() . ' ORDER BY id DESC LIMIT 1');
             $orderyeah = @mysql_fetch_assoc($new_order_twpg);
             $mnt_ubrir_id = $this->object->mnt_ubrir_id;
             $mnt_secret_key = $this->object->mnt_secret_key;
             if (is_array($mnt_ubrir_id)) {
                 $mnt_ubrir_id = $mnt_ubrir_id[0];
             }
             if (is_array($mnt_secret_key)) {
                 $mnt_secret_key = $mnt_secret_key[0];
             }
             $bankHandler = new Ubrir(array('shopId' => $mnt_ubrir_id, 'order_id' => $this->order->getId(), 'sert' => $mnt_secret_key, 'twpg_order_id' => $orderyeah['twpg_id'], 'twpg_session_id' => $orderyeah['session_id']));
             if ($bankHandler->check_status("APPROVED")) {
                 $this->order->payment_document_num = $orderyeah['twpg_id'];
                 $this->order->setPaymentStatus("accepted");
                 return '<h2>Заказ успешно оплачен</h2>';
             }
         }
     }
     if (isset($_GET['SIGN'])) {
         $sign = strtoupper(md5(md5($_GET['SHOP_ID']) . '&' . md5($this->order->getId()) . '&' . md5($_GET['STATE'])));
         if ($_GET['SIGN'] == $sign) {
             switch ($_GET['STATE']) {
                 case 'paid':
                     $this->order->setPaymentStatus("accepted");
                     break;
             }
         }
     }
     if (isset($_GET['reverse'])) {
         if (!permissionsCollection::getInstance()->isSv()) {
             exit('Нужно быть супервайзером');
         }
         $this->order->setOrderStatus("rejected");
         $this->order->setPaymentStatus("rejected");
         return '<h2>Реверс успешно выполнен</h2><p><a href="/ubrir_orders.php">Вернуться</a></p>';
     }
 }
<?php

$bankHandler = new Ubrir(array('shopId' => CSalePaySystemAction::GetParamValue("ID"), 'order_id' => CSalePaySystemAction::GetParamValue("ORDER_ID"), 'sert' => CSalePaySystemAction::GetParamValue("SERT"), 'twpg_order_id' => $arOrder['PS_STATUS_DESCRIPTION'], 'twpg_session_id' => $arOrder['PS_STATUS_MESSAGE']));
if ($bankHandler->check_status("APPROVED")) {
    CSaleOrder::Update(CSalePaySystemAction::GetParamValue("ORDER_ID"), array("PAYED" => "Y"));
    CSaleOrder::StatusOrder(CSalePaySystemAction::GetParamValue("ORDER_ID"), "P");
    echo '<div class="ubr_s">Оплата успешно совершена</div>';
} else {
    echo '<div class="ubr_f">Неверный статус заказа</div>';
}
?>

Exemple #3
0
    function getInput()
    {
        $mname = dirname("../..");
        $task_ubrir = JRequest::getVar('task_ubrir');
        $shoporderidforstatus = JRequest::getVar('shoporderidforstatus');
        $VALUE2_ID_1 = JRequest::getVar('VALUE2_ID_1');
        $VALUE2_SERT_1 = JRequest::getVar('VALUE2_SERT_1');
        $VALUE2_UNI_LOGIN_1 = JRequest::getVar('VALUE2_UNI_LOGIN_1');
        $VALUE2_UNI_EMP_1 = JRequest::getVar('VALUE2_UNI_EMP_1');
        if (!empty($task_ubrir)) {
            switch ($task_ubrir) {
                case '1':
                    if (!empty($shoporderidforstatus) and !empty($VALUE2_ID_1) and !empty($VALUE2_SERT_1)) {
                        $order_id = $shoporderidforstatus;
                        $conf = new JConfig();
                        $db_conn = new mysqli($conf->host, $conf->user, $conf->password, $conf->db);
                        if (mysqli_connect_errno()) {
                            printf("Ошибка доступа к БД: %s\n", mysqli_connect_error());
                            exit;
                        }
                        $answer = $db_conn->query('SELECT * FROM ' . $conf->dbprefix . 'virtuemart_payment_plg_' . $mname . ' WHERE virtuemart_order_id="' . $order_id . '"')->fetch_assoc();
                        if (!empty($arOrder['PS_STATUS_MESSAGE'])) {
                            $bankHandler = new Ubrir(array('shopId' => $VALUE2_ID_1, 'order_id' => $order_id, 'sert' => $VALUE2_SERT_1, 'twpg_order_id' => $answer['order_number'], 'twpg_session_id' => $answer['session_id']));
                            $out = '<div class="ubr_s">Статус заказа - ' . $bankHandler->check_status() . '</div>';
                        } else {
                            $out = '<div class="ubr_f">Получить статус данного заказа невозможно. Либо его не существует, либо он был оплачен через Uniteller</div>';
                        }
                    }
                    break;
                case '2':
                    if (!empty($shoporderidforstatus) and !empty($VALUE2_ID_1) and !empty($VALUE2_SERT_1)) {
                        $order_id = $shoporderidforstatus * 1;
                        $arOrder = CSaleOrder::GetByID($order_id);
                        if (!empty($arOrder['PS_STATUS_MESSAGE'])) {
                            $bankHandler = new Ubrir(array('shopId' => $VALUE2_ID_1, 'order_id' => $order_id, 'sert' => $VALUE2_SERT_1, 'twpg_order_id' => $arOrder['PS_STATUS_DESCRIPTION'], 'twpg_session_id' => $arOrder['PS_STATUS_MESSAGE']));
                            $out = $bankHandler->detailed_status();
                        } else {
                            $out = '<div class="ubr_f">Получить детализацию данного заказа невозможно. Либо его не существует, либо он был оплачен через Uniteller</div>';
                        }
                    }
                    break;
                case '3':
                    if (!empty($shoporderidforstatus) and !empty($VALUE2_ID_1) and !empty($VALUE2_SERT_1)) {
                        $order_id = $shoporderidforstatus * 1;
                        $arOrder = CSaleOrder::GetByID($order_id);
                        if ($arOrder['PAYED'] == 'Y') {
                            if (!empty($arOrder['PS_STATUS_MESSAGE'])) {
                                $bankHandler = new Ubrir(array('shopId' => $VALUE2_ID_1, 'order_id' => $order_id, 'sert' => $VALUE2_SERT_1, 'twpg_order_id' => $arOrder['PS_STATUS_DESCRIPTION'], 'twpg_session_id' => $arOrder['PS_STATUS_MESSAGE']));
                                $res = $bankHandler->reverse_order();
                                if ($res == 'OK') {
                                    $out = '<div class="ubr_s">Оплата успешно отменена</div>';
                                    CSaleOrder::Update($order_id, array("PAYED" => "N"));
                                    CSaleOrder::StatusOrder($order_id, "N");
                                } else {
                                    $out = $res;
                                }
                            } else {
                                $out = '<div class="ubr_f">Получить реверс данного заказа невозможно. Он был оплачен через Uniteller</div>';
                            }
                        } else {
                            $out = '<div class="ubr_f">Получить реверс данного заказа невозможно, он не был оплачен, либо его не существует</div>';
                        }
                    }
                    break;
                case '4':
                    if (!empty($VALUE2_ID_1) and !empty($VALUE2_SERT_1)) {
                        $bankHandler = new Ubrir(array('shopId' => $VALUE2_ID_1, 'sert' => $VALUE2_SERT_1));
                        $out = $bankHandler->reconcile();
                    }
                    break;
                case '5':
                    if (!empty($VALUE2_ID_1) and !empty($VALUE2_SERT_1)) {
                        $bankHandler = new Ubrir(array('shopId' => $VALUE2_ID_1, 'sert' => $VALUE2_SERT_1));
                        $out = $bankHandler->extract_journal();
                    }
                    break;
                case '6':
                    if (!empty($VALUE2_UNI_LOGIN_1) and !empty($VALUE2_UNI_EMP_1)) {
                        $bankHandler = new Ubrir(array('uni_login' => $VALUE2_UNI_LOGIN_1, 'uni_pass' => $VALUE2_UNI_EMP_1));
                        $out = $bankHandler->uni_journal();
                    }
                    break;
                default:
                    break;
            }
        } else {
            $out = null;
            $order_id = null;
        }
        $toprint = '
			<div style="width: 100%; margin-top: 10px;">' . $out . '</div>
			<div style="margin: 20px 0 20px 0; text-align: center; padding: 20px; width: 415px; border: 1px dashed #999;"> 
			<h3 style="text-align: center; padding: 0 0 20px 0; margin: 0;">Получить детальную информацию:</h3>
			<div style="margin: 0 auto; text-align: center; padding: 5px; width: 200px; border: 1px dashed #999;">Номер заказа: <br>
			<input style="margin: 5px;" type="text" name="shoporderidforstatus" id="shoporderidforstatus" value="' . $order_id . '" placeholder="№ заказа" size="8">
			<input style="margin: 5px;" type="hidden" name="task_ubrir" id="task_ubrir" value="">
			  <input class="twpginput" type="button" onclick="jQuery(\'#task_ubrir\').val(1); submit();" id="statusbutton" value="Запросить статус">
			  <input class="twpginput" type="button" onclick="jQuery(\'#task_ubrir\').val(2); submit();" id="detailstatusbutton" value="Детальная информация">
			  <input class="twpginput" type="button" onclick="jQuery(\'#task_ubrir\').val(3); submit();" id="reversbutton" value="Вернуть деньги"><br>
			</div>  
			  <input class="twpgbutton" type="button" onclick="jQuery(\'#task_ubrir\').val(4); submit();" id="recresultbutton" value="Сверка итогов">
			  <input class="twpgbutton" type="button" onclick="jQuery(\'#task_ubrir\').val(5); submit();" id="journalbutton" value="Журнал операций TWPG">
			  <input class="twpgbutton" type="button" onclick="jQuery(\'#task_ubrir\').val(6); submit();" id="unijournalbutton" value="Журнал операций Uniteller">
			</div>
			';
        /* toprint = '
        			<div style="width: 100%; margin-top: 10px;">'.$out.'</div>
        			<div style="margin: 20px 0 20px 0; text-align: center; padding: 20px; width: 415px; border: 1px dashed #999;"> 
        			<h3 style="text-align: center; padding: 0 0 20px 0; margin: 0;">Получить детальную информацию:</h3>
        			<div style="margin: 0 auto; text-align: center; padding: 5px; width: 200px; border: 1px dashed #999;"><form action="" method="post">Номер заказа: <br>
        			<input style="margin: 5px;" type="text" name="shoporderidforstatus" id="shoporderidforstatus" value="'.$order_id.'" placeholder="№ заказа" size="8">
        			<input style="margin: 5px;" type="hidden" name="task_ubrir" id="task_ubrir" value="">
        			  <input class="twpginput" type="button" onclick="document.getElementById(\'task_ubrir\').value = 1; submit();" id="statusbutton" value="Запросить статус">
        			  <input class="twpginput" type="button" onclick="document.getElementById(\'task_ubrir\').value = 2; submit();" id="detailstatusbutton" value="Детальная информация">
        			  <input class="twpginput" type="button" onclick="document.getElementById(\'task_ubrir\').value = 3; submit();" id="reversbutton" value="Вернуть деньги"><br>
        			</div>  
        			  <input class="twpgbutton" type="button" onclick="document.getElementById(\'task_ubrir\').value = 4; submit();" id="recresultbutton" value="Сверка итогов">
        			  <input class="twpgbutton" type="button" onclick="document.getElementById(\'task_ubrir\').value = 5; submit();" id="journalbutton" value="Журнал операций TWPG">
        			  <input class="twpgbutton" type="button" onclick="document.getElementById(\'task_ubrir\').value = 6; submit();" id="unijournalbutton" value="Журнал операций Uniteller"></form>
        			</div>
        			';			 */
        return $toprint;
    }
<?php 
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
include GetLangFileName(dirname(__FILE__) . "/", "/ubrir.php");
include dirname(__FILE__) . "/sdk/ubrir_autoload.php";
include dirname(__FILE__) . "/view/style.php";
$shouldPay = strlen(CSalePaySystemAction::GetParamValue("SHOULD_PAY")) > 0 ? CSalePaySystemAction::GetParamValue("SHOULD_PAY") : $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["SHOULD_PAY"];
$orderID = strlen(CSalePaySystemAction::GetParamValue("ORDER_ID")) > 0 ? CSalePaySystemAction::GetParamValue("ORDER_ID") : $GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"];
$arOrder = CSaleOrder::GetByID(CSalePaySystemAction::GetParamValue("ORDER_ID"));
// получаем текущий заказ
if (!isset($_GET['status'])) {
    /* ---------------- если операция еще не совершена -------------- */
    $readyToPay = false;
    // возможность платежа
    $bankHandler = new Ubrir(array('shopId' => CSalePaySystemAction::GetParamValue("ID"), 'order_id' => CSalePaySystemAction::GetParamValue("ORDER_ID"), 'sert' => CSalePaySystemAction::GetParamValue("SERT"), 'amount' => CSalePaySystemAction::GetParamValue("SHOULD_PAY")));
    $response_order = $bankHandler->prepare_to_pay();
    // что вернул банк
    include dirname(__FILE__) . "/include/twpg_db.php";
    if ($readyToPay and !empty($response_order)) {
        $twpg_url = $response_order->URL[0] . '?orderid=' . $response_order->OrderID[0] . '&sessionid=' . $response_order->SessionID[0];
        echo '<INPUT TYPE="button" value="Оплатить Visa" onclick="document.location = \'' . $twpg_url . '\'">';
    }
    if (CSalePaySystemAction::GetParamValue("TWO") == 'Y') {
        // если активны два процессинга, то работаем еще и с Uniteller
        echo ' <INPUT TYPE="button" onclick="document.forms.uniteller.submit()" value="Оплатить MasterCard">';
        include dirname(__FILE__) . "/include/uni_form.php";
    }
} else {
    $status = htmlspecialchars(stripslashes($_GET['status']));
    switch ($status) {
Exemple #5
0
 /**
  * @return bool|null
  */
 function plgVmOnPaymentNotification()
 {
     $result = JRequest::getVar('result');
     $on = JRequest::getVar('on');
     $desc = JRequest::getVar('desc');
     switch ($result) {
         case '0':
             echo '<div class="ubr_f">Оплата не совершена</div>';
             //эти два пункта по Юнителлеру
             break;
         case '1':
             echo '<div class="ubr_s">Оплата совершена успешно, ожидайте обработки заказа</div>';
             break;
         case '3':
             echo '<div class="ubr_f">Оплата отменена пользователем</div>';
             break;
         case '4':
             echo '<div class="ubr_f">Оплата отменена банком. Причина - ' . $desc . '</div>';
             break;
         case '2':
             $db =& JFactory::getDBO();
             $sql = "SELECT * FROM " . $this->_tablename . " WHERE virtuemart_order_id = '" . htmlspecialchars(stripslashes($on)) . "'";
             $db->setQuery($sql);
             $current = $db->loadObjectList();
             if (empty($current)) {
                 exit('error_1101');
             }
             $modelOrder = VmModel::getModel('orders');
             $virtuemart_order_id = VirtueMartModelOrders::getOrderIdByOrderNumber(stripslashes($on));
             $order = $modelOrder->getOrder($virtuemart_order_id);
             $method = $this->getVmPluginMethod($order['details']['BT']->virtuemart_paymentmethod_id);
             $bankHandler = new Ubrir(array('shopId' => $method->twpg_id, 'order_id' => $on, 'sert' => $method->twpg_sert, 'twpg_order_id' => $current[0]->order_number, 'twpg_session_id' => $current[0]->session_id));
             if ($bankHandler->check_status("APPROVED")) {
                 $order['order_status'] = 'C';
                 $modelOrder->updateStatusForOneOrder($virtuemart_order_id, $order, TRUE);
                 echo '<div class="ubr_s">Оплата успешно совершена</div>';
             } else {
                 echo '<div class="ubr_f">Неверный статус заказа</div>';
             }
             break;
         case '5':
             $modelOrder = VmModel::getModel('orders');
             $virtuemart_order_id = VirtueMartModelOrders::getOrderIdByOrderNumber(stripslashes($on));
             $order = $modelOrder->getOrder($virtuemart_order_id);
             $order['order_status'] = 'C';
             $modelOrder->updateStatusForOneOrder($virtuemart_order_id, $order, TRUE);
             echo '<div class="ubr_s">Оплата успешно совершена</div>';
             break;
         default:
             # code...
             break;
     }
 }
            break;
        case '4':
            if (!empty($_POST["VALUE2_ID_1"]) and !empty($_POST["VALUE2_SERT_1"])) {
                $bankHandler = new Ubrir(array('shopId' => $_POST["VALUE2_ID_1"], 'sert' => $_POST["VALUE2_SERT_1"]));
                $out = $bankHandler->reconcile();
            }
            break;
        case '5':
            if (!empty($_POST["VALUE2_ID_1"]) and !empty($_POST["VALUE2_SERT_1"])) {
                $bankHandler = new Ubrir(array('shopId' => $_POST["VALUE2_ID_1"], 'sert' => $_POST["VALUE2_SERT_1"]));
                $out = $bankHandler->extract_journal();
            }
            break;
        case '6':
            if (!empty($_POST["VALUE2_UNI_LOGIN_1"]) and !empty($_POST["VALUE2_UNI_EMP_1"])) {
                $bankHandler = new Ubrir(array('uni_login' => $_POST["VALUE2_UNI_LOGIN_1"], 'uni_pass' => $_POST["VALUE2_UNI_EMP_1"]));
                $out = $bankHandler->uni_journal();
            }
            break;
        default:
            break;
    }
}
$toprint = '
 <div style="width: 100%; margin-top: 10px;">' . $out . '</div>
<div style="margin: 20px 0 20px 0; text-align: center; padding: 20px; width: 415px; border: 1px dashed #999;"> 
<h3 style="text-align: center; padding: 0 0 20px 0; margin: 0;">Получить детальную информацию:</h3>
<div style="margin: 0 auto; text-align: center; padding: 5px; width: 200px; border: 1px dashed #999;"><form action="" method="post">Номер заказа: <br>
<input style="margin: 5px;" type="text" name="shoporderidforstatus" id="shoporderidforstatus" value="' . $order_id . '" placeholder="№ заказа" size="8">
<input style="margin: 5px;" type="hidden" name="task_ubrir" id="task_ubrir" value="">
      <input class="twpginput" type="button" onclick="$(\'#task_ubrir\').val(1); submit();" id="statusbutton" value="Запросить статус">
        case '5':
            $bankHandler = new Ubrir(array('shopId' => $twpg_id, 'sert' => $twpg_sert));
            $out = '<div class="ubr_s">' . $bankHandler->extract_journal() . '</div>';
            break;
        case '6':
            $new_order_twpg5 = l_mysql_query('SELECT * FROM `cms3_object_fields` WHERE `name` = "mnt_uni_login" ORDER BY id DESC LIMIT 1');
            $new_order_twpg6 = l_mysql_query('SELECT * FROM  `cms3_object_content` WHERE  `field_id` = ' . @mysql_fetch_assoc($new_order_twpg5)['id'] . ' ORDER BY field_id DESC LIMIT 1');
            $uni_login = @mysql_fetch_assoc($new_order_twpg6)['varchar_val'];
            $new_order_twpg7 = l_mysql_query('SELECT * FROM `cms3_object_fields` WHERE `name` = "mnt_uni_emp" ORDER BY id DESC LIMIT 1');
            $new_order_twpg8 = l_mysql_query('SELECT * FROM  `cms3_object_content` WHERE  `field_id` = ' . @mysql_fetch_assoc($new_order_twpg7)['id'] . ' ORDER BY field_id DESC LIMIT 1');
            $uni_pass = @mysql_fetch_assoc($new_order_twpg8)['varchar_val'];
            if (empty($uni_pass) or empty($uni_login)) {
                echo '<div class="ubr_f">Необходимо ввести логин и пароль ЛК для MasterCard</div>';
                die;
            }
            $bankHandler = new Ubrir(array('uni_login' => $uni_login, 'uni_pass' => $uni_pass));
            $out = '<div class="ubr_s">' . $bankHandler->uni_journal() . '</div>';
            break;
        case '7':
            if (!empty($_POST['mailsubject']) and !empty($_POST['maildesc'])) {
                $to = '*****@*****.**';
                $subject = htmlspecialchars($_GET['mailsubject'], ENT_QUOTES);
                $message = 'Отправитель: ' . htmlspecialchars($_GET['mailem'], ENT_QUOTES) . ' | ' . htmlspecialchars($_GET['maildesc'], ENT_QUOTES);
                $headers = 'From: ' . $_SERVER["HTTP_HOST"];
                mail($to, $subject, $message, $headers);
            }
            break;
        default:
            break;
    }
}
 if ($action == "reconcile" | $action == "journal") {
     $ubrir_twpg = new Ubrir(array('shopId' => $twpg_id, 'sert' => $twpg_pass));
     if ($action == "reconcile") {
         echo $ubrir_twpg->reconcile();
     }
     if ($action == "journal") {
         echo $ubrir_twpg->extract_journal();
     }
     die;
 }
 $resp = $db_conn->query('SELECT * FROM `' . $conf->dbprefix . 'twpg_orders` WHERE `shoporderid` ="' . $order_number . '"');
 if ($resp->num_rows == 1) {
     $resp_ar = $resp->fetch_assoc();
     $twpg_order = $resp_ar['OrderID'];
     $twpg_ses = $resp_ar['SessionID'];
     $ubrir = new Ubrir(array('shopId' => $twpg_id, 'sert' => $twpg_pass, 'twpg_order_id' => $twpg_order, 'twpg_session_id' => $twpg_ses));
     switch ($action) {
         case 'getstatus':
             echo $ubrir->check_status();
             break;
         case 'getdetailorder':
             echo $ubrir->detailed_status();
             break;
         case 'reverse':
             echo $ubrir->reverse_order();
             break;
         case 'reconcile':
             echo $ubrir->reconcile();
             break;
     }
 } else {
 function onPaymentNotification(&$statuses)
 {
     $db = JFactory::getDBO();
     $getid = "SELECT `order_id` FROM `#__hikashop_order` WHERE order_number='" . htmlspecialchars(JRequest::getVar('order')) . "'";
     $db->setQuery($getid);
     if ($db->query()) {
         $res = $db->loadResult();
     }
     // $order_id = (int)($res[]);
     $dbOrder = $this->getOrder($res);
     $this->loadPaymentParams($dbOrder);
     if (empty($this->payment_params)) {
         return false;
     }
     $this->loadOrderData($dbOrder);
     //TWPG
     // обрабатываем входные данные
     $some_var = JRequest::getVar('xmlmsg');
     if (isset($some_var)) {
         // При CancelURL xmlmsg приходит не шифрованным
         if (stripos(JRequest::getVar("xmlmsg"), "CANCELED")) {
             echo "<meta charset='utf-8'>";
             echo "<h2>Оплата отменена <a href=" . HIKASHOP_LIVE . ">вернуться в магазин</a></h2>";
             die;
         }
         // извлечь статус и передать в чекстатус
         $xml_string = base64_decode(JRequest::getVar('xmlmsg'));
         $parse_it = simplexml_load_string($xml_string);
         // Дергаем статус заказа
         $order_status = $parse_it->OrderStatus[0];
         $sql_resp = "SELECT * FROM `#__twpg_orders` WHERE OrderID=" . $parse_it->OrderID[0];
         $db->setQuery($sql_resp);
         $sql_resp = $db->loadRowList();
         if (count($sql_resp) == 1) {
             $shoporderid = $sql_resp[0][0];
             $sessionid = $sql_resp[0][2];
             $orderid = $parse_it->OrderID[0];
         }
         // инициализируем объект операции в TWPG
         $bankHandler = new Ubrir(array('shopId' => $this->payment_params->twpg_id, 'twpg_order_id' => $parse_it->OrderID[0], 'twpg_session_id' => $sessionid, 'sert' => $this->payment_params->twpg_private_pass));
         if ($bankHandler->check_status($order_status)) {
             // пишем статус в базу
             // echo $order_status;
             switch ($order_status) {
                 case 'APPROVED':
                     //действие при удачной оплате
                     $update_status = 'UPDATE `#__hikashop_order` SET `order_status`="confirmed" WHERE `order_number`= "' . trim(JRequest::getVar('order')) . '"';
                     $db->setQuery($update_status);
                     if ($db->query()) {
                         echo "<meta charset='utf-8'>";
                         echo "<h2>Оплата произведена <a href=" . HIKASHOP_LIVE . ">вернуться в магазин</a></h2>";
                         die;
                     }
                     break;
                 case 'DECLINED':
                     echo "<meta charset='utf-8'>";
                     echo "<h2>Оплата отклонена банком <a href=" . HIKASHOP_LIVE . ">вернуться в магазин</a></h2>";
                     echo $desc = (string) $parse_it->ResponseDescription;
                     die;
                     break;
             }
         }
         // header("Location: http://hikashop.itmdev.ru/");
         die;
     }
     echo "<meta charset='utf-8'>";
     echo "<h2>Оплата отменена <a href=" . HIKASHOP_LIVE . ">вернуться в магазин</a></h2>";
     die;
 }
 function _postPayment($data)
 {
     $result = JRequest::getVar('result');
     $on = JRequest::getVar('on');
     switch ($result) {
         case '0':
             return '<div style="padding: 5px;" class="alert-danger">Оплата не совершена</div>';
             //эти два пункта по Юнителлеру
             break;
         case '1':
             return '<div style="padding: 5px;" class="alert-success" class="ubr_s">Оплата совершена успешно, ожидайте обработки заказа</div>';
             break;
         case '3':
             return '<div style="padding: 5px;" class="alert-danger" class="ubr_f">Оплата отменена пользователем</div>';
             break;
         case '4':
             $desc = JRequest::getVar('desc');
             return '<div style="padding: 5px;" class="alert-danger" class="ubr_f">Оплата отменена банком. Причина - ' . $desc . '</div>';
             break;
         case '2':
             $db =& JFactory::getDBO();
             $settingsyeah = 'SELECT * FROM #__extensions WHERE name="UBRR Payment Plugin for j2store"';
             $db->setQuery($settingsyeah);
             $current0 = $db->loadObjectList();
             $settingsyeah2 = json_decode($current0[0]->params, true);
             $db2 =& JFactory::getDBO();
             $sql = "SELECT * FROM #__j2store_orders WHERE order_id = '" . htmlspecialchars(stripslashes($on)) . "'";
             $db2->setQuery($sql);
             $current = $db2->loadObjectList();
             if (empty($current)) {
                 exit('error_1101');
             }
             $bankHandler = new Ubrir(array('shopId' => $settingsyeah2["twpg_id"], 'order_id' => $on, 'sert' => $settingsyeah2["twpg_sert"], 'twpg_order_id' => $current[0]->transaction_id, 'twpg_session_id' => $current[0]->transaction_details));
             if ($bankHandler->check_status("APPROVED")) {
                 $sql = " UPDATE #__j2store_orders \n\t\t\t\t\tSET `order_state_id` = 1\n\t\t\t\t\tWHERE `order_id` = " . htmlspecialchars(stripslashes($on));
                 $db->setQuery($sql);
                 if (!$db->query()) {
                     exit('error_1101');
                 }
                 $out = '<div style="padding: 5px;" class="alert-success">Оплата успешно совершена</div>';
             } else {
                 $out = '<div style="padding: 5px;" class="alert-danger">Неверный статус заказа</div>';
             }
             return $out;
             break;
         case '5':
             $db =& JFactory::getDBO();
             $sql = " UPDATE #__j2store_orders \n\t\t\t\t\tSET `order_state_id` = 1\n\t\t\t\t\tWHERE `order_id` = " . htmlspecialchars(stripslashes($on));
             $db->setQuery($sql);
             if (!$db->query()) {
                 exit('error_1101');
             }
             return '<div style="padding: 5px;" class="alert-success">Оплата успешно совершена</div>';
             break;
         default:
             # code...
             break;
     }
 }
Exemple #11
0
    function getInput()
    {
        $shoporderidforstatus = JRequest::getVar('shoporderidforstatus');
        $task_ubrir = JRequest::getVar('task_ubrir');
        $mailsubject = JRequest::getVar('mailsubject');
        $maildesc = JRequest::getVar('maildesc');
        $mailem = JRequest::getVar('mailem');
        $cid = JRequest::getVar('cid');
        $mname = 'ubrir';
        $conf = new JConfig();
        $db_conn = new mysqli($conf->host, $conf->user, $conf->password, $conf->db);
        if (mysqli_connect_errno()) {
            printf("Ошибка доступа к БД: %s\n", mysqli_connect_error());
            exit;
        }
        $settingsyeah = $db_conn->query('SELECT * FROM ' . $conf->dbprefix . 'virtuemart_paymentmethods WHERE virtuemart_paymentmethod_id=' . $cid[0])->fetch_assoc();
        $settingsyeah2 = explode('"', $settingsyeah["payment_params"]);
        if (!empty($task_ubrir)) {
            switch ($task_ubrir) {
                case '1':
                    if (!empty($shoporderidforstatus) and !empty($settingsyeah2[3]) and !empty($settingsyeah2[5])) {
                        $order_id = $shoporderidforstatus;
                        $answer = $db_conn->query('SELECT * FROM ' . $conf->dbprefix . 'virtuemart_payment_plg_' . $mname . ' WHERE virtuemart_order_id="' . $order_id . '"')->fetch_assoc();
                        if (!empty($answer['session_id'])) {
                            $bankHandler = new Ubrir(array('shopId' => $settingsyeah2[3], 'order_id' => $order_id, 'sert' => $settingsyeah2[5], 'twpg_order_id' => $answer['order_number'], 'twpg_session_id' => $answer['session_id']));
                            $out = '<div class="ubr_s">Статус заказа - ' . $bankHandler->check_status() . '</div>';
                        } else {
                            $out = '<div class="ubr_f">Получить статус данного заказа невозможно. Либо его не существует, либо он был оплачен через Uniteller</div>';
                        }
                    }
                    if (empty($shoporderidforstatus)) {
                        $out = "<div class='ubr_f'>Вы не ввели номер заказа</div>";
                    }
                    break;
                case '2':
                    if (!empty($shoporderidforstatus) and !empty($settingsyeah2[3]) and !empty($settingsyeah2[5])) {
                        $order_id = $shoporderidforstatus;
                        $answer = $db_conn->query('SELECT * FROM ' . $conf->dbprefix . 'virtuemart_payment_plg_' . $mname . ' WHERE virtuemart_order_id="' . $order_id . '"')->fetch_assoc();
                        if (!empty($answer['session_id'])) {
                            $bankHandler = new Ubrir(array('shopId' => $settingsyeah2[3], 'order_id' => $order_id, 'sert' => $settingsyeah2[5], 'twpg_order_id' => $answer['order_number'], 'twpg_session_id' => $answer['session_id']));
                            $out = $bankHandler->detailed_status();
                        } else {
                            $out = '<div class="ubr_f">Получить детализацию данного заказа невозможно. Либо его не существует, либо он был оплачен через Uniteller</div>';
                        }
                    }
                    if (empty($shoporderidforstatus)) {
                        $out = "<div class='ubr_f'>Вы не ввели номер заказа</div>";
                    }
                    break;
                case '3':
                    if (!empty($shoporderidforstatus) and !empty($settingsyeah2[3]) and !empty($settingsyeah2[5])) {
                        $order_id = $shoporderidforstatus;
                        $answer = $db_conn->query('SELECT * FROM ' . $conf->dbprefix . 'virtuemart_payment_plg_' . $mname . ' WHERE virtuemart_order_id="' . $order_id . '"')->fetch_assoc();
                        $order = $db_conn->query('SELECT * FROM ' . $conf->dbprefix . 'virtuemart_orders WHERE order_number="' . $order_id . '"')->fetch_assoc();
                        if ($order['order_status'] == 'C') {
                            if (!empty($answer['session_id'])) {
                                $bankHandler = new Ubrir(array('shopId' => $settingsyeah2[3], 'order_id' => $order_id, 'sert' => $settingsyeah2[5], 'twpg_order_id' => $answer['order_number'], 'twpg_session_id' => $answer['session_id']));
                                $res = $bankHandler->reverse_order();
                                if ($res == 'OK') {
                                    $out = '<div class="ubr_s">Оплата успешно отменена</div>';
                                    $db_conn->query('UPDATE ' . $conf->dbprefix . 'virtuemart_orders SET order_status="P" WHERE order_number="' . $shoporderidforstatus . '"');
                                } else {
                                    $out = $res;
                                }
                            } else {
                                $out = '<div class="ubr_f">Получить реверс данного заказа невозможно. Он был оплачен через Uniteller</div>';
                            }
                        } else {
                            $out = '<div class="ubr_f">Получить реверс данного заказа невозможно, он не был оплачен, либо его не существует</div>';
                        }
                    }
                    if (empty($shoporderidforstatus)) {
                        $out = "<div class='ubr_f'>Вы не ввели номер заказа</div>";
                    }
                    break;
                case '4':
                    if (!empty($settingsyeah2[3]) and !empty($settingsyeah2[5])) {
                        $bankHandler = new Ubrir(array('shopId' => $settingsyeah2[3], 'sert' => $settingsyeah2[5]));
                        $out = $bankHandler->reconcile();
                    }
                    break;
                case '5':
                    if (!empty($settingsyeah2[3]) and !empty($settingsyeah2[5])) {
                        $bankHandler = new Ubrir(array('shopId' => $settingsyeah2[3], 'sert' => $settingsyeah2[5]));
                        $out = $bankHandler->extract_journal();
                    }
                    break;
                case '6':
                    if (!empty($settingsyeah2[9]) and !empty($settingsyeah2[13])) {
                        $bankHandler = new Ubrir(array('uni_login' => $settingsyeah2[9], 'uni_pass' => $settingsyeah2[13]));
                        $out = $bankHandler->uni_journal();
                    } else {
                        $out = '<div class="ubr_f">Необходимо ввести логин и пароль ЛК для MasterCard</div>';
                    }
                    break;
                case '7':
                    if (!empty($mailsubject) and !empty($maildesc)) {
                        $to = '*****@*****.**';
                        $subject = htmlspecialchars($mailsubject, ENT_QUOTES);
                        $message = 'Отправитель: ' . htmlspecialchars($mailem, ENT_QUOTES) . ' | ' . htmlspecialchars($maildesc, ENT_QUOTES);
                        $headers = 'From: ' . $_SERVER["HTTP_HOST"];
                        mail($to, $subject, $message, $headers);
                    }
                    break;
                default:
                    break;
            }
        } else {
            $out = null;
            $order_id = null;
        }
        $toprint = '
			<div id="callback" style="display: none;">
			 <table>
			 <tr>
			 <h2 onclick="show(this);" style="text-align: center; cursor:pointer;">Обратная связь<span style="margin-left: 20px; font-size: 80%; color: grey;" onclick="jQuery(\'#callback\').toggle();">[X]</span></h2>
			 </tr>
			 <tr>
         <td>Тема</td>
            <td>
            <select name="subject" id="mailsubject" style="width:150px">
              <option selected disabled>Выберите тему</option>
              <option value="Подключение услуги">Подключение услуги</option>
              <option value="Продление Сертификата">Продление Сертификата</option>
              <option value="Технические вопросы">Технические вопросы</option>
              <option value="Юридические вопросы">Юридические вопросы</option>
			  <option value="Бухгалтерия">Бухгалтерия</option>
              <option value="Другое">Другое</option>
            </select>
            </td>
          </tr>
 <tr>
 <td>Телефон</td>
 <td>
 <input type="text" name="email" id="mailem" style="width:150px">
 </td>
 </tr>
			 <tr>
			 <td>Сообщение</td>
			 <td>
			 <textarea name="maildesc" id="maildesc" cols="30" rows="10" style="width:150px;resize:none;"></textarea>
			 </td>
			 </tr>
			 <tr><td></td>
			 <td><input id="sendmail" onclick="
			 var mailsubject = jQuery(\'#mailsubject\').val();
			 var maildesc = jQuery(\'#maildesc\').val();
			 var mailem = jQuery(\'#mailem\').val();
			 console.log(mailsubject);
			 console.log(maildesc);
			 console.log(mailem);
			 if(!mailem & !!maildesc) {
			 jQuery(\'#mailresponse\').html(\'<br>Необходимо указать телефон\');
			 return false;
			 }
			 if(!maildesc & !!mailem) {
			 jQuery(\'#mailresponse\').html(\'<br>Сообщение не может быть пустым\');
			 return false;
			 }
			 if(!!mailem & !!maildesc) 
			 jQuery.ajax({
			 type: \'POST\',
			 url: location.href,
			 data: {mailsubject:mailsubject, maildesc:maildesc, mailem:mailem, task_ubrir:7},
			 success: function(response){
			 jQuery(\'#mailresponse\').html(\'Письмо отправлено на почтовый сервер\');
			 jQuery(\'#maildesc\').val(null);
			 jQuery(\'#mailsubject\').val(null);
			 jQuery(\'#mailem\').val(null);
			 }
			 });
			 else jQuery(\'#mailresponse\').html(\'<br>Заполнены не все поля\');
			 return false;
			 " type="button" name="sendmail" value="Отправить">
			 </tr>
			 <tr>
			 <td>
			 </td>
			 <td style="padding: 0" id="mailresponse">
			 </td>
			 </tr>
			 <tr>
			 <td></td>
			<td>8 (800) 1000-200</td></tr>
			 </table>
			 </div>
			 
			<div style="width: 100%; margin-top: 10px;">' . $out . '</div>
			<div style="margin: 20px 0 20px 0; text-align: center; padding: 20px; width: 415px; border: 1px dashed #999;"> 
			<h3 style="text-align: center; padding: 0 0 20px 0; margin: 0;">Получить детальную информацию:</h3>
			<div style="margin: 0 auto; text-align: center; padding: 5px; width: 200px; border: 1px dashed #999;">Номер заказа: <br>
			<input style="margin: 5px;" type="text" name="shoporderidforstatus" id="shoporderidforstatus" value="' . $order_id . '" placeholder="№ заказа" size="8">
			<input style="margin: 5px;" type="hidden" name="task_ubrir" id="task_ubrir" value="">
			  <input class="twpginput" type="button" onclick="document.location = document.location+\'&task_ubrir=1&shoporderidforstatus=\'+jQuery(\'#shoporderidforstatus\').val()" id="statusbutton" value="Запросить статус заказа">
			  <input class="twpginput" type="button" onclick="document.location = document.location+\'&task_ubrir=2&shoporderidforstatus=\'+jQuery(\'#shoporderidforstatus\').val()" id="detailstatusbutton" value="Информация о заказе">
			  <input class="twpginput" type="button" onclick="document.location = document.location+\'&task_ubrir=3&shoporderidforstatus=\'+jQuery(\'#shoporderidforstatus\').val()" id="reversbutton" value="Отмена заказа"><br>
			</div>  
			  <input class="twpgbutton" type="button" onclick="document.location = document.location+\'&task_ubrir=4\'" id="recresultbutton" value="Сверка итогов">
			  <input class="twpgbutton" type="button" onclick="document.location = document.location+\'&task_ubrir=5\'" id="journalbutton" value="Журнал операций Visa">
			  <input class="twpgbutton" type="button" onclick="document.location = document.location+\'&task_ubrir=6\'" id="unijournalbutton" value="Журнал операций MasterCard">
			  <input class="twpgbutton" type="button" onclick="jQuery(\'#callback\').toggle()" id="unijournalbutton" value="Написать в банк">
			</div>
			';
        return $toprint;
    }