$response = $result->getResponse(); if (isset($response->order->orderId)) { $payu = new PayU(); $payu->payu_order_id = $response->order->orderId; if (isset($response->properties[0]) && !empty($response->properties[0])) { if ($response->properties[0]->name == 'PAYMENT_ID' && isset($response->properties[0]->value)) { $payu->payu_payment_id = $response->properties[0]->value; } } $order_payment = $payu->getOrderPaymentBySessionId($payu->payu_order_id); $id_order = (int) $order_payment['id_order']; // if order not validated yet if ($id_order == 0 && $order_payment['status'] == PayU::PAYMENT_STATUS_NEW) { $cart = new Cart($order_payment['id_cart']); $payu->validateOrder($cart->id, (int) Configuration::get('PAYU_PAYMENT_STATUS_PENDING'), $cart->getOrderTotal(true, Cart::BOTH), $payu->displayName, 'PayU cart ID: ' . $cart->id . ', orderId: ' . $payu->payu_order_id, null, (int) $cart->id_currency, false, $cart->secure_key, Context::getContext()->shop->id ? new Shop((int) Context::getContext()->shop->id) : null); $id_order = $payu->current_order = $payu->{'currentOrder'}; $payu->updateOrderPaymentStatusBySessionId(PayU::PAYMENT_STATUS_INIT); } if ($response->order->status == PayU::ORDER_V2_COMPLETED) { $payu->addMsgToOrder('payment_id: ' . $payu->payu_payment_id, $id_order); } if (!empty($id_order)) { $payu->id_order = $id_order; $payu->updateOrderData($response); } //the response should be status 200 header("HTTP/1.1 200 OK"); } } ob_end_flush(); exit;