/** * Executes payment. Additionally loads oxPaymentGateway object, initiates * it by adding payment parameters (oxPaymentGateway::setPaymentParams()) * and finally executes it (oxPaymentGateway::executePayment()). On failure - * deletes order and returns * error code 2. * * @param Basket $oBasket basket object * @param object $oUserpayment user payment object * * @return integer 2 or an error code */ protected function _executePayment(Basket $oBasket, $oUserpayment) { $oPayTransaction = $this->_getGateway(); $oPayTransaction->setPaymentParams($oUserpayment); if (!$oPayTransaction->executePayment($oBasket->getPrice()->getBruttoPrice(), $this)) { $this->delete(); // checking for error messages if (method_exists($oPayTransaction, 'getLastError')) { if ($sLastError = $oPayTransaction->getLastError()) { return $sLastError; } } // checking for error codes if (method_exists($oPayTransaction, 'getLastErrorNo')) { if ($iLastErrorNo = $oPayTransaction->getLastErrorNo()) { return $iLastErrorNo; } } return self::ORDER_STATE_PAYMENTERROR; // means no authentication } return true; // everything fine }