コード例 #1
0
ファイル: Order.php プロジェクト: Alpha-Sys/oxideshop_ce
 /**
  * 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
 }