protected function HandleNotifyMessageForPaymentState($sPaymentState, $aParameter, $oOrder)
    {
        if (!$oOrder->fieldOrderIsPaid) {
            if ('9' === $sPaymentState) {
                $oOrder->SetStatusPaid(true);
                $oOrder->SetStatusCanceled(false);
                $this->HandleNotifyOrderOnChange($oOrder, true, true, true);
                TTools::WriteLogEntry('OGONE: handle notify message order ('.$aParameter['ORDERID'].') was activated and paid by notify (Status 9 paid)', 1, __FILE__, __LINE__);
            } elseif ('5' === $sPaymentState) {
                if ($oOrder->fieldCanceled || !$oOrder->fieldSystemOrderSaveCompleted) {
                    $oOrder->SetStatusCanceled(false);
                    $oOrder->SetStatusPaid(false);
                    TTools::WriteLogEntry('OGONE: handle notify message order ('.$aParameter['ORDERID'].') was activated by notify and set to not paid (Status 5 reservation)', 1, __FILE__, __LINE__);
                    $this->HandleNotifyOrderOnChange($oOrder, false, !$oOrder->fieldSystemOrderSaveCompleted, true);
                }
            } else {
                if ('6' === $sPaymentState || '1' === $sPaymentState || '2' === $sPaymentState || '0' === $sPaymentState) {
                    $oOrder->SetStatusCanceled(true);
                    $oOrder->SetStatusPaid(false);
                    $this->HandleNotifyOrderOnChange($oOrder, false, false, true);
                    TTools::WriteLogEntry('OGONE: handle notify message order ('.$aParameter['ORDERID'].') was canceled and set to not paid by notify (Status 0,1,2,6)', 1, __FILE__, __LINE__);
                }
            }
        } else {
            TTools::WriteLogEntry('OGONE: handle notify message order ('.$aParameter['ORDERID'].') was already paid nothing to do)', 1, __FILE__, __LINE__);
        }
    }