ControllerExtensionPaymentKlarnaCheckout::notification PHP Method

notification() public method

public notification ( )
    public function notification()
    {
        $this->load->model('extension/payment/klarna_checkout');
        $this->load->model('checkout/order');
        if (!$this->config->get('klarna_checkout_status')) {
            return false;
        }
        $request = json_decode(file_get_contents('php://input'));
        if (isset($request->order_id)) {
            $klarna_checkout_order = $this->model_extension_payment_klarna_checkout->getOrder($request->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');
                    }
                    $retrieve = $this->model_extension_payment_klarna_checkout->omOrderRetrieve($connector, $request->order_id);
                    $order_status_id = false;
                    if ($retrieve) {
                        switch ($request->event_type) {
                            case 'FRAUD_RISK_ACCEPTED':
                                $order_status_id = $this->config->get('klarna_checkout_order_status_fraud_accepted_id');
                                break;
                            case 'FRAUD_RISK_REJECTED':
                                $order_status_id = $this->config->get('klarna_checkout_order_status_fraud_rejected_id');
                                break;
                        }
                    }
                    if ($order_status_id) {
                        $this->model_checkout_order->addOrderHistory($klarna_checkout_order['order_id'], $order_status_id);
                    }
                }
            } else {
                $this->model_extension_payment_klarna_checkout->log('Could not find order id using ' . $request->order_id);
            }
        } else {
            $this->model_extension_payment_klarna_checkout->log('$request->order_id is not set');
        }
    }