Esempio n. 1
0
 /**
  * @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;
 }
Esempio n. 2
0
 /**
  * Password change operation
  *
  * @param string $password New password
  */
 public function __construct($password)
 {
     $order = new Order('ServiceRequest', '', 0);
     $this->password = $password;
     $this->orderid = $order->getReference();
 }
Esempio n. 3
0
 /**
  * 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));
 }