/** * @param PaymentTransaction $transaction * @throws CException */ public function processTransaction(PaymentTransaction $transaction) { if ($this->_payment === null) { throw new CException(sprintf('Cannot process transaction #%d without payment.', $transaction->id)); } if ($this->needPayment()) { $response = $this->_client->processPayment($this->_payment->toObject()); } else { $params = array('ORDER_NUMBER' => $this->_payment->orderNumber, 'TIMESTAMP' => time(), 'PAID' => true, 'METHOD' => 'none'); $response = new PaytrailResponse(); $response->configure(array('orderNumber' => $this->_payment->orderNumber, 'url' => $this->createUrl('successUrl', $params))); } $this->_result = PaytrailResult::create(array('paymentId' => $this->_payment->id, 'orderNumber' => $response->getOrderNumber(), 'token' => $response->getToken(), 'url' => $response->getUrl())); }