예제 #1
0
파일: seb.php 프로젝트: jflash/moodulid25
 function update_status($status, $order_id, $text = 'VMPAYMENT_SEB_PAYMENT_CANCELED')
 {
     if ($order_id) {
         // send the email only if payment has been accepted
         if (!class_exists('VirtueMartModelOrders')) {
             require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php';
         }
         $modelOrder = new VirtueMartModelOrders();
         $order['order_status'] = $status;
         $order['virtuemart_order_id'] = $order_id;
         $order['customer_notified'] = 1;
         $order['comments'] = JTExt::sprintf($text, $order_id);
         $modelOrder->updateStatusForOneOrder($order_id, $order, true);
     }
 }
예제 #2
0
 function plgVmOnUserPaymentCancel()
 {
     if (!class_exists('VirtueMartModelOrders')) {
         require VMPATH_ADMIN . DS . 'models' . DS . 'orders.php';
     }
     $tp_cart = json_decode($_SESSION['__vm']['vmcart']);
     $vm_order = VirtueMartModelOrders::getOrderIdByOrderNumber($tp_cart->order_number);
     $orderModel = VmModel::getModel('orders');
     $order = $orderModel->getOrder($vm_order);
     if ($this->_vmpCtable->virtuemart_paymentmethod_id != $order['details']['BT']->virtuemart_paymentmethod_id) {
         return NULL;
     }
     echo '<script>alert("Pago Cancelado: Por favor intente nuevamente")</script>';
     $modelOrder = new VirtueMartModelOrders();
     $order['order_status'] = 'X';
     $order['virtuemart_order_id'] = $vm_order;
     $order['customer_notified'] = 1;
     $order['comments'] = JTExt::sprintf("Pago Rechazado", $vm_order);
     $modelOrder->updateStatusForOneOrder($vm_order, $order, false);
     return true;
 }
예제 #3
0
 public function plgVmOnPaymentNotification()
 {
     if (JRequest::getVar('pelement') != 'kaznachey') {
         return null;
     }
     if (!class_exists('VirtueMartModelOrders')) {
         require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php';
     }
     $order_id = JRequest::getVar('order_number');
     $order = VirtueMartModelOrders::getOrder($order_id);
     $error = false;
     $method = $this->getVmPluginMethod($order['details']['BT']->virtuemart_paymentmethod_id);
     if ($method) {
         $request_json = file_get_contents('php://input');
         $request = json_decode($request_json, true);
         $request_sign = md5($request["ErrorCode"] . $request["OrderId"] . $request["MerchantInternalPaymentId"] . $request["MerchantInternalUserId"] . number_format($request["OrderSum"], 2, ".", "") . number_format($request["Sum"], 2, ".", "") . strtoupper($request["Currency"]) . $request["CustomMerchantInfo"] . strtoupper($method->secret_key));
         if ($request['SignatureEx'] == $request_sign) {
             $order['order_status'] = $method->status_success;
             $order['virtuemart_order_id'] = "{$order_id}";
             $order['customer_notified'] = 0;
             $order['comments'] = JTExt::sprintf('VMPAYMENT_kaznachey_PAYMENT_CONFIRMED', $order_id);
             if (!class_exists('VirtueMartModelOrders')) {
                 require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php';
             }
             $modelOrder = new VirtueMartModelOrders();
             ob_start();
             $modelOrder->updateStatusForOneOrder($order_id, $order, true);
             ob_end_clean();
         } else {
             $error = "WRONG_SIGNATURE";
         }
         if ($error) {
             $order['order_status'] = $method->status_canceled;
             $order['virtuemart_order_id'] = "{$order_id}";
             $order['customer_notified'] = 0;
             $order['comments'] = JTExt::sprintf("VMPAYMENT_kaznachey_PAYMENT_ERROR: {$error}", $order_id);
             if (!class_exists('VirtueMartModelOrders')) {
                 require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php';
             }
             $modelOrder = new VirtueMartModelOrders();
             ob_start();
             $modelOrder->updateStatusForOneOrder($order_id, $order, true);
             ob_end_clean();
         }
     }
     exit;
     return null;
 }
 public function plgVmOnPaymentNotification()
 {
     if (JRequest::getVar('pelement') != 'kaznachey') {
         return null;
     }
     if (!class_exists('VirtueMartModelOrders')) {
         require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php';
     }
     $order_id = JRequest::getVar('order_number');
     $order = VirtueMartModelOrders::getOrder($order_id);
     $error = false;
     $method = $this->getVmPluginMethod($order['details']['BT']->virtuemart_paymentmethod_id);
     if ($method) {
         $merchantGuid = $method->merchant_id;
         $merchnatSecretKey = $method->secret_key;
         $HTTP_RAW_POST_DATA = @$HTTP_RAW_POST_DATA ? $HTTP_RAW_POST_DATA : file_get_contents('php://input');
         $hrpd = json_decode($HTTP_RAW_POST_DATA);
         if (@$hrpd->MerchantInternalPaymentId) {
             $merchantGuid = $method->merchant_id;
             $merchnatSecretKey = $method->secret_key;
             $amount = number_format($order['details']['BT']->order_total, 2, '.', '');
             $signature_u = md5(md5($merchantGuid . $merchnatSecretKey . "{$amount}" . $order_id));
             if ($hrpd->ErrorCode == 0) {
                 if ($hrpd->CustomMerchantInfo == $signature_u) {
                     $order['order_status'] = $method->status_success;
                     $order['virtuemart_order_id'] = "{$order_id}";
                     $order['customer_notified'] = 0;
                     $order['comments'] = JTExt::sprintf('VMPAYMENT_kaznachey_PAYMENT_CONFIRMED', $order_id);
                     if (!class_exists('VirtueMartModelOrders')) {
                         require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php';
                     }
                     $modelOrder = new VirtueMartModelOrders();
                     ob_start();
                     $modelOrder->updateStatusForOneOrder($order_id, $order, true);
                     ob_end_clean();
                 } else {
                     $error = "Wrong_SIGNATURE";
                 }
             } else {
                 $error = "Transaction_error";
             }
         }
         if ($error) {
             $order['order_status'] = $method->status_canceled;
             $order['virtuemart_order_id'] = "{$order_id}";
             $order['customer_notified'] = 0;
             $order['comments'] = JTExt::sprintf("VMPAYMENT_kaznachey_PAYMENT_ERROR: {$error}", $order_id);
             if (!class_exists('VirtueMartModelOrders')) {
                 require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php';
             }
             $modelOrder = new VirtueMartModelOrders();
             ob_start();
             $modelOrder->updateStatusForOneOrder($order_id, $order, true);
             ob_end_clean();
         }
     }
     exit;
     return null;
 }
예제 #5
-1
 public function plgVmOnPaymentNotification()
 {
     if (JRequest::getVar('pelement') != 'paykeeper') {
         return null;
     }
     if (!class_exists('VirtueMartModelOrders')) {
         require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php';
     }
     $orderid = JRequest::getInt('WMI_PAYMENT_NO', 0);
     $postprice = floatval(JRequest::getVar('WMI_PAYMENT_AMOUNT'));
     $payment = $this->getDataByOrderId($orderid);
     $method = $this->getVmPluginMethod($payment->virtuemart_paymentmethod_id);
     $order_model = new VirtueMartModelOrders();
     $order_info = $order_model->getOrder($orderid);
     $order_number = $order_info['details']['BT']->order_number;
     if (!$method->payment_currency) {
         $this->getPaymentCurrency($method);
     }
     // END printing out HTML Form code (Payment Extra Info)
     $q = 'SELECT `currency_code_3` FROM `#__virtuemart_currencies` WHERE `virtuemart_currency_id`="' . $method->payment_currency . '" ';
     $db =& JFactory::getDBO();
     $db->setQuery($q);
     $currency_code_3 = $db->loadResult();
     if (!class_exists('CurrencyDisplay')) {
         require JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'currencydisplay.php';
     }
     $paymentCurrency = CurrencyDisplay::getInstance($method->payment_currency);
     $totalInPaymentCurrency = round($paymentCurrency->convertCurrencyTo($method->payment_currency, $order_info['details']['BT']->order_total, false), 2);
     $sig = JRequest::getVar('WMI_SIGNATURE');
     $params = JRequest::get('post');
     unset($params["WMI_SIGNATURE"]);
     uksort($params, "strcasecmp");
     $values = implode('', $params);
     $signature = base64_encode(pack("H*", md5($values . $method->paykeeper_secret)));
     if ($totalInPaymentCurrency == $postprice && $sig == $signature) {
         switch (JRequest::getVar('WMI_ORDER_STATE')) {
             case 'Accepted':
                 $status = $method->status_success;
                 $msg = 'оплачен';
                 break;
             case 'Rejected':
             default:
                 $status = $method->status_canceled;
                 $msg = 'отменён';
                 break;
         }
         $order['order_status'] = $status;
         $order['virtuemart_order_id'] = $orderid;
         $order['customer_notified'] = 0;
         $order['comments'] = JTExt::sprintf('VMPAYMENT_PAYKEEPER_PAYMENT_CONFIRMED', $order_number);
         if (!class_exists('VirtueMartModelOrders')) {
             require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php';
         }
         $modelOrder = new VirtueMartModelOrders();
         ob_start();
         $modelOrder->updateStatusForOneOrder($orderid, $order, true);
         ob_end_clean();
         echo 'WMI_RESULT=OK';
         exit;
     }
     echo 'WMI_RESULT=RETRY&WMI_DESCRIPTION=' . urlencode('Неверная подпись заказа');
     return null;
 }