/** * 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); }