/**
  * Overridden function calls Paymorrow services: confirmOrder
  *
  * @param                              $dAmount
  * @param oxOrder|OxpsPaymorrowOxOrder $oOrder
  *
  * @return bool|mixed
  */
 public function executePayment($dAmount, &$oOrder)
 {
     /** @var oxUserPayment|OxpsPaymorrowOxUserPayment $oUserPayment */
     $oUserPayment = $this->_oPaymentInfo;
     if ($oUserPayment->isUserPaymentPaymorrowMethod()) {
         // Set real order ID (OXID field) to session to be used in order confirmation during payment.
         $oOrder->savePaymorrowTemporaryOrderIdToSession($oOrder->getId());
         /** @var OxpsPaymorrowRequestControllerProxy $oPmRequestControllerProxy */
         $oPmRequestControllerProxy = oxNew('OxpsPaymorrowRequestControllerProxy');
         $oPmRequestControllerProxy->confirmOrder();
         /** @var OxpsPaymorrowResponseHandler $oPmResponseHandler */
         $oPmResponseHandler = oxRegistry::get('OxpsPaymorrowResponseHandler');
         /**
          * If Order has an error after validation from Paymorrow services invalidate order and delete it
          * If Payment data save failed return an error
          */
         if ($oPmResponseHandler->hasErrors() or !$this->_savePaymorrowUserPaymentData($oOrder, $oPmResponseHandler)) {
             $this->_handleOrderResponseErrors($oPmResponseHandler);
             return false;
         }
     }
     return $this->_OxpsPaymorrowOxPaymentGateway_executePayment_parent($dAmount, $oOrder);
 }