/** * @inheritDoc */ public function getCustomFields(Gateway $gateway = null) { // Override merchant urls - append order data to it if (!is_null($gateway)) { $urls = $gateway->getMerchantUrls(['_merchantRef' => $this->order->getId()]); $data = ['gateway.successurl' => $urls['success'], 'gateway.errorurl' => $urls['error']]; } if ($this->payment instanceof InternetBank) { $data['bank_type'] = $this->payment->getBank(); } return $data; }
/** * Password change operation * * @param string $password New password */ public function __construct($password) { $order = new Order('ServiceRequest', '', 0); $this->password = $password; $this->orderid = $order->getReference(); }
/** * Returns transaction status * * @param Order $order Customer order * @param Customer $customer * @param Method $method Payment method * @param string $reference Order reference * @param boolean $extended Always query extended data * @return Response * @throws GatewayException */ public function getStatus(Order $order, Customer $customer, Method $method, $reference = '', $extended = false) { // Try to get reference from URL if (!$reference) { $reference = filter_input(INPUT_GET, 'dts_reference'); } if (!$reference) { throw new GatewayException('Reference required.'); } // Perform initial query $query = new Query(Query::TYPE_INFO, $reference, $method, $order); $result = $this->processOperation($query); if ($method instanceof Payment\PayPal) { if ($result->isWaitingSubmission()) { $attempt_ref = $result->getReference(); $attempt = new Attempt($attempt_ref, $reference, $order, $customer); $submission = $this->processOperation($attempt); if (!$submission->isSuccess()) { $this->logEvent(LogLevel::ERROR, 'PayPal order submission failed - ' . $submission->getMessage()); return $submission; } $order->setRetry(uniqid()); return $this->getStatus($order, $customer, $method, $reference); } return $result; } $status = $result->getStatus(); if ($status !== false && !$extended) { return $result; } $extRef = $result->getExtendedReference(); // No reference available, return what we got already if (!$extRef) { return $result; } return $this->processOperation(new Query(Query::TYPE_EXTENDED, $extRef, $method, $order)); }