function hipayUpdateOrder($cart = null, $newOrderStatusId = _PS_OS_ERROR_)
{
    echo '-fnUO';
    checkStatus116();
    $hipay = new HiPay_Tpp();
    $order_id = retrieveOrderId($cart->id);
    $order = new Order((int) $order_id);
    echo '/Oid_' . $order_id;
    if ($newOrderStatusId == 'skip') {
        // Simply log the callback
        $msg = new Message();
        $message = $hipay->l('HiPay - Callback initiated');
        $message .= ' - ' . $hipay->l('Transaction_reference : ') . $_POST['transaction_reference'];
        $message .= ' - ' . $hipay->l('State : ') . $_POST['state'];
        $message .= ' - ' . $hipay->l('Status : ') . $_POST['status'];
        $message .= ' - ' . $hipay->l('Message : ') . $_POST['message'];
        $message .= ' - ' . $hipay->l('data : ') . $_POST['cdata1'];
        $message = strip_tags($message, '<br>');
        if (Validate::isCleanHtml($message)) {
            $msg->message = $message;
            $msg->id_order = intval($order->id);
            $msg->private = 1;
            $msg->add();
        }
        HipayLogger::addLog($hipay->l('Callback process', 'hipay'), HipayLogger::ERROR, 'hipayUpdateOrder status skip - cid : ' . (int) $_POST['order']->id);
        die;
        return;
    }
    if ($_POST['status'] == '124') {
        $amount = -1 * $_POST['refunded_amount'];
        $msg = new Message();
        $message = $hipay->l('HiPay - Refund request Callback initiated - ');
        $message .= ' - ' . $hipay->l('Refund amount requested : ') . $amount;
        $message .= ' - ' . $hipay->l('Transaction_reference : ') . $_POST['transaction_reference'];
        $message .= ' - ' . $hipay->l('State : ') . $_POST['state'];
        $message .= ' - ' . $hipay->l('Status : ') . $_POST['status'];
        $message .= ' - ' . $hipay->l('Message : ') . $_POST['message'];
        $message .= ' - ' . $hipay->l('data : ') . $_POST['cdata1'];
        $message = strip_tags($message, '<br>');
        if (Validate::isCleanHtml($message)) {
            $msg->message = $message;
            $msg->id_order = intval($order->id);
            $msg->private = 1;
            $msg->add();
        }
    }
    if ($newOrderStatusId == Configuration::get('HIPAY_REFUNDED')) {
        refundOrder($order);
    }
    checkStatus116();
    updateHistory($order_id, $newOrderStatusId);
    return true;
}
     // Refund Requested
     $orderState = $stt_refunded_rq;
     // si commande existante, on modifie le statut de la commande
     if (changeStatusOrder($order_exist, $id_order, $orderState, $objOrder)) {
         $statuts = array('refund_requested' => $orderState);
         addMessageRefund($objOrder, $callback_arr, $hipay, $statuts);
     }
     break;
     // Status HIPAY_REFUNDED
 // Status HIPAY_REFUNDED
 case 125:
     // Refunded
     $orderState = $stt_refunded;
     // si commande existante, on modifie le statut de la commande
     if (changeStatusOrder($order_exist, $id_order, $orderState, $objOrder)) {
         refundOrder($callback_arr, $objOrder, $hipay, $stt_refunded);
         addMessageRefund($objOrder, $callback_arr, $hipay, $orderState);
     }
     break;
     // Status HIPAY_CHARGED BACK
 // Status HIPAY_CHARGED BACK
 case 129:
     // Charged back
     $orderState = $stt_chargedback;
     // si commande existante, on modifie le statut de la commande
     changeStatusOrder($order_exist, $id_order, $orderState, $objOrder);
     break;
     // Status HIPAY_CAPTURE_REFUSED
 // Status HIPAY_CAPTURE_REFUSED
 case 173:
     // Capture Refused