示例#1
0
 public function createOrder()
 {
     $order = new PayqrOrder();
     $orderId = $order->createOrder();
     $this->invoice->setOrderId($orderId);
     $invoice_id = $this->invoice->getInvoiceId();
     if ($order->getOrderPaidStatus($invoice_id)) {
     }
     //отправка сообщений
     $module = new PayqrModule();
     if ($module->getOption("message-invoice-order-creating")) {
         $message = $this->invoice->getMessage();
         if ($message) {
             $message->article = $module->getOption("message-invoice-order-creating-article");
             $message->text = $module->getOption("message-invoice-order-creating-text");
             $message->imageUrl = $module->getOption("message-invoice-order-creating-imageUrl");
             $message->url = $module->getOption("message-invoice-order-creating-url");
             $this->invoice->setMessage($message);
         }
     }
     //сохраняем заказ
     $db = PayqrModuleDb::getInstance();
     $id = $db->insert(PayqrModuleDb::getInvoiceTable(), array("invoice_id" => $this->invoice->getInvoiceId(), "order_id" => $orderId, "invoice_type" => "invoice.order.creating"), array("%s", "%s", "%s"));
     //сохраняем логи
     $id = $db->insert(PayqrModuleDb::getLogTable(), array("event_id" => $this->invoice->getInvoiceId(), "order_id" => $orderId, "event_type" => "invoice.order.creating", "payqr_number" => $this->invoice->getPayqrNumber(), "datetime" => date("Y-m-d H:i:s"), "data" => file_get_contents("php://input")), array("%s", "%s", "%s", "%s", "%s", "%s"));
 }
示例#2
0
 public function createOrder()
 {
     $order = new PayqrOrder($this->invoice, $this->diafan);
     $orderId = $order->createOrder();
     PayqrLog::log("Создали заказ:" . $orderId);
     $this->invoice->setOrderId($orderId);
     PayqrLog::log("Получаем invoice_id");
     $invoice_id = $this->invoice->getInvoiceId();
     PayqrLog::log("Получили invoice_id: " . $invoice_id);
     if ($order->getOrderPaidStatus($invoice_id)) {
     }
     /**
      * Устанавливаем общую стоимость заказа
      */
     PayqrLog::log("Устанавливаем сумму заказа");
     $total = $order->getTotalAmount();
     /**
      * Устанавливаем пользовательские данные
      */
     $order->setUserOrderData($orderId);
     /**
      * Получаем стоимость доставки
      */
     $delivery = 0;
     $deliverySelected = $this->invoice->getDeliveryCasesSelected();
     if (isset($deliverySelected, $deliverySelected->amountFrom) && !empty($deliverySelected->amountFrom)) {
         $delivery = round((double) $deliverySelected->amountFrom, 2);
         $order->updateDeliverySumm($orderId, $deliverySelected->article, $delivery);
     }
     $this->invoice->setAmount(round($total + $delivery));
     PayqrLog::log("Установили сумму заказа вместе с доставкой: " . $total . "+" . $delivery . " = " . ($total + $delivery));
     //отправка сообщений
     $module = new PayqrModule();
     if ($module->getOption("message-invoice-order-creating")) {
         $message = $this->invoice->getMessage();
         if ($message) {
             $message->article = $module->getOption("message-invoice-order-creating-article");
             $message->text = $module->getOption("message-invoice-order-creating-text");
             $message->imageUrl = $module->getOption("message-invoice-order-creating-imageUrl");
             $message->url = $module->getOption("message-invoice-order-creating-url");
             $this->invoice->setMessage($message);
         }
     }
     //сохраняем заказ
     $db = PayqrModuleDb::getInstance();
     $id = $db->insert(PayqrModuleDb::getInvoiceTable(), array("invoice_id" => $this->invoice->getInvoiceId(), "order_id" => $orderId, "invoice_type" => "invoice.order.creating"), array("%s", "%s", "%s"));
     //сохраняем логи
     $id = $db->insert(PayqrModuleDb::getLogTable(), array("event_id" => $this->invoice->getInvoiceId(), "order_id" => $orderId, "event_type" => "invoice.order.creating", "payqr_number" => $this->invoice->getPayqrNumber(), "datetime" => date("Y-m-d H:i:s"), "data" => file_get_contents("php://input")), array("%s", "%s", "%s", "%s", "%s", "%s"));
     return true;
 }
 public function handle($data)
 {
     PayqrConfig::setConfig();
     if (isset($data["invoice_action"])) {
         $order_id = $data["order_id"];
         $action = $data["invoice_action"];
         $invoice_id = $data["invoice_id"];
         if ($this->validate($data)) {
             $invAction = new PayqrInvoiceAction();
             switch ($action) {
                 case "invoice_cancel":
                     $invAction->invoice_cancel($invoice_id);
                     $order = new PayqrOrder();
                     $order->cancelOrder();
                     break;
                 case "invoice_revert":
                     $revert_amount = $data["invoice_revert_amount"];
                     $invAction->invoice_revert($invoice_id, $revert_amount);
                     break;
                 case "invoice_confirm":
                     $invAction->invoice_confirm($invoice_id);
                     break;
                 case "invoice_execution_confirm":
                     $invAction->invoice_execution_confirm($invoice_id);
                     break;
                 case "invoice_message":
                     $text = $data["invoice_message_text"];
                     $image_url = $data["invoice_message_image_url"];
                     $click_url = $data["invoice_message_click_url"];
                     $invAction->invoice_message($invoice_id, $text, $image_url, $click_url);
                     break;
                 case "invoice_sync_data":
                     $order = new PayqrOrder();
                     $order->syncOrder();
                     break;
             }
         }
     }
 }