ControllerExtensionPaymentKlarnaCheckout::confirmation PHP Метод

confirmation() публичный Метод

public confirmation ( )
    public function confirmation()
    {
        $this->load->language('extension/payment/klarna_checkout');
        if (!$this->config->get('klarna_checkout_status')) {
            return false;
        }
        if (isset($this->session->data['order_id'])) {
            $this->cart->clear();
            // Add to activity log
            if ($this->config->get('config_customer_activity')) {
                $this->load->model('account/activity');
                if ($this->customer->isLogged()) {
                    $activity_data = array('customer_id' => $this->customer->getId(), 'name' => $this->customer->getFirstName() . ' ' . $this->customer->getLastName(), 'order_id' => $this->session->data['order_id']);
                    $this->model_account_activity->addActivity('order_account', $activity_data);
                } else {
                    $activity_data = array('name' => $this->session->data['guest']['firstname'] . ' ' . $this->session->data['guest']['lastname'], 'order_id' => $this->session->data['order_id']);
                    $this->model_account_activity->addActivity('order_guest', $activity_data);
                }
            }
            unset($this->session->data['shipping_method']);
            unset($this->session->data['shipping_methods']);
            unset($this->session->data['payment_method']);
            unset($this->session->data['payment_methods']);
            unset($this->session->data['guest']);
            unset($this->session->data['comment']);
            unset($this->session->data['order_id']);
            unset($this->session->data['coupon']);
            unset($this->session->data['reward']);
            unset($this->session->data['voucher']);
            unset($this->session->data['vouchers']);
            unset($this->session->data['totals']);
            unset($this->session->data['klarna_checkout_order_id']);
            unset($this->session->data['klarna_checkout_data']);
        }
        $this->document->setTitle($this->language->get('heading_title_success'));
        $data['breadcrumbs'] = array();
        $data['breadcrumbs'][] = array('text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'));
        $data['breadcrumbs'][] = array('text' => $this->language->get('text_basket'), 'href' => $this->url->link('checkout/cart'));
        $data['breadcrumbs'][] = array('text' => $this->language->get('text_checkout'), 'href' => $this->url->link('checkout/checkout', '', true));
        $data['breadcrumbs'][] = array('text' => $this->language->get('text_success'), 'href' => $this->url->link('checkout/success'));
        $data['heading_title'] = $this->language->get('heading_title_success');
        $data['button_continue'] = $this->language->get('button_continue');
        $data['continue'] = $this->url->link('common/home');
        $data['column_left'] = $this->load->controller('common/column_left');
        $data['column_right'] = $this->load->controller('common/column_right');
        $data['content_top'] = $this->load->controller('common/content_top');
        $data['content_bottom'] = $this->load->controller('common/content_bottom');
        $data['footer'] = $this->load->controller('common/footer');
        $data['header'] = $this->load->controller('common/header');
        $this->load->model('extension/payment/klarna_checkout');
        $this->load->model('checkout/order');
        $klarna_checkout = false;
        $html_snippet = '';
        if (isset($this->request->get['klarna_order_id'])) {
            $klarna_checkout_order = $this->model_extension_payment_klarna_checkout->getOrder($this->request->get['klarna_order_id']);
            if ($klarna_checkout_order) {
                $order_info = $this->model_checkout_order->getOrder($klarna_checkout_order['order_id']);
                if ($order_info) {
                    list($klarna_account, $connector) = $this->model_extension_payment_klarna_checkout->getConnector($this->config->get('klarna_checkout_account'), $order_info['currency_code']);
                    if (!$klarna_account || !$connector) {
                        $this->model_extension_payment_klarna_checkout->log('Could not getConnector');
                        $this->response->redirect($this->url->link('checkout/failure', '', true));
                    }
                    $retrieve = $this->model_extension_payment_klarna_checkout->orderRetrieve($connector, $this->request->get['klarna_order_id']);
                    if ($retrieve) {
                        $klarna_checkout = $retrieve->fetch();
                        if ($klarna_checkout && $klarna_checkout['html_snippet']) {
                            $html_snippet = $klarna_checkout['html_snippet'];
                        }
                    } else {
                        $this->response->redirect($this->url->link('checkout/cart', '', true));
                    }
                }
            } else {
                $this->model_extension_payment_klarna_checkout->log('Could not find order id using ' . $this->request->get['klarna_order_id']);
                $this->response->redirect($this->url->link('checkout/failure', '', true));
            }
        } else {
            $this->model_extension_payment_klarna_checkout->log('$this->request->get[\'klarna_order_id\'] is not set');
            $this->response->redirect($this->url->link('checkout/failure', '', true));
        }
        $data['klarna_checkout'] = $html_snippet;
        $this->response->setOutput($this->load->view('extension/payment/klarna_checkout_success', $data));
    }