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');
}
}