protected function finalizeOrder(\Payin7\Models\OrderModel $order)
 {
     $this->module->getLogger()->info(get_class($this) . ': orderfinalize :: ' . print_r($_POST, true));
     /** @noinspection PhpUndefinedMethodInspection */
     $order_data = array('orderId' => $order->getPayin7OrderIdentifier(), 'orderUrl' => $this->module->getFrontendOrderCompleteUrl($order, false, $this->module->getShouldUseSecureConnection(), true), 'cancelUrl' => $this->module->getModuleLink('ordercancel', array('module_action' => 'cancel'), $this->module->getShouldUseSecureConnection(), 'ordercancel_handler'), 'completeUrl' => $this->module->getModuleLink('ordersuccess', array('module_action' => 'complete'), $this->module->getShouldUseSecureConnection(), 'ordersuccess_handler'), 'isCheckout' => true);
     $this->context->smarty->assign(array_merge($this->module->getPayin7SDKTemplateParams(), array('order_data' => json_encode($order_data))));
     if ($this->module->getIsPrestashop14()) {
         $this->context->smarty->display(_PS_MODULE_DIR_ . 'payin7/views/templates/front/finalize.tpl');
     } else {
         return $this->setTemplate('finalize.tpl');
     }
     return null;
 }
 protected function processOrderStateChange($new_order_state, array $payload, \Payin7\Models\OrderModel $order, &$message, &$code)
 {
     $ret = true;
     $message = null;
     $code = null;
     switch ($new_order_state) {
         case 'cancel':
             /** @var OrderCore $orderm */
             /** @noinspection PhpUndefinedClassInspection */
             $orderm = new Order($order->getOrderId());
             if (ValidateCore::isLoadedObject($orderm)) {
                 $state = $orderm->current_state;
                 if ($state == $this->module->getConfigIdOrderStatePending()) {
                     // temporarily disable updating history back to Payin7
                     $this->module->setHistoryUpdateEnabled(false);
                     $orderm->setCurrentState($this->module->getConfigIdOrderStateCancelled());
                     // reenable history
                     $this->module->setHistoryUpdateEnabled(true);
                     $message = 'Local order state set to (1): ' . $this->module->getConfigIdOrderStateCancelled();
                 }
             } else {
                 $message = 'Local order could not be loaded (2)';
                 $ret = false;
             }
             break;
         case 'active':
             $is_verified = isset($payload['is_verified']) ? (bool) $payload['is_verified'] : false;
             $is_paid = isset($payload['is_paid']) ? (bool) $payload['is_paid'] : false;
             // update the order state
             if (!$order->getPayin7OrderAccepted()) {
                 $order->setPayin7OrderAccepted(true);
                 $order->savePayin7Data();
             }
             if ($is_verified && $is_paid) {
                 /** @var OrderCore $orderm */
                 /** @noinspection PhpUndefinedClassInspection */
                 $orderm = new Order($order->getOrderId());
                 $state = $orderm->current_state;
                 if ($state == $this->module->getConfigIdOrderStatePending()) {
                     // temporarily disable updating history back to Payin7
                     $this->module->setHistoryUpdateEnabled(false);
                     $orderm->setCurrentState($this->module->getConfigIdOrderStateAccepted());
                     // reenable history
                     $this->module->setHistoryUpdateEnabled(true);
                     $message = 'Local order state set to (2): ' . $this->module->getConfigIdOrderStateAccepted();
                 }
             } else {
                 $message = 'Order not verified / paid';
                 $ret = false;
             }
             break;
     }
     return $ret;
 }