Пример #1
0
 public function testCompletePurchase()
 {
     /** @var \Omnipay\MultiSafepay\Message\CompletePurchaseRequest $request */
     $request = $this->gateway->completePurchase($this->options);
     /** @var CreditCard $card */
     $card = $request->getCard();
     $this->assertInstanceOf('Omnipay\\MultiSafepay\\Message\\CompletePurchaseRequest', $request);
     $this->assertSame('http://localhost/notify', $request->getNotifyUrl());
     $this->assertSame('http://localhost/cancel', $request->getCancelUrl());
     $this->assertSame('http://localhost/return', $request->getReturnUrl());
     $this->assertSame('IDEAL', $request->getGateway());
     $this->assertSame('issuer', $request->getIssuer());
     $this->assertSame('123456', $request->getTransactionId());
     $this->assertSame('EUR', $request->getCurrency());
     $this->assertSame('100.00', $request->getAmount());
     $this->assertSame('desc', $request->getDescription());
     $this->assertSame('extra 1', $request->getExtraData1());
     $this->assertSame('extra 2', $request->getExtraData2());
     $this->assertSame('extra 3', $request->getExtraData3());
     $this->assertSame('a language', $request->getLanguage());
     $this->assertSame('analytics code', $request->getGoogleAnalyticsCode());
     $this->assertSame('127.0.0.1', $request->getClientIp());
     $this->assertSame('*****@*****.**', $card->getEmail());
     $this->assertSame('first name', $card->getFirstName());
     $this->assertSame('last name', $card->getLastName());
     $this->assertSame('address 1', $card->getAddress1());
     $this->assertSame('address 2', $card->getAddress2());
     $this->assertSame('1000', $card->getPostcode());
     $this->assertSame('a city', $card->getCity());
     $this->assertSame('a country', $card->getCountry());
     $this->assertSame('phone number', $card->getPhone());
 }
 public function createRedirectActionException(FinancialTransactionInterface $transaction)
 {
     $parameters = $this->getPurchaseParameters($transaction);
     /**
      * @var \Omnipay\MultiSafepay\Message\PurchaseRequest $purchaseRequest
      */
     $purchaseRequest = $this->gateway->purchase($parameters);
     /**
      * @var \Omnipay\MultiSafepay\Message\PurchaseResponse $purchaseResponse
      */
     $purchaseResponse = $purchaseRequest->send();
     if ($this->logger) {
         $this->logger->info($purchaseRequest->getData()->asXML());
         $this->logger->info($purchaseResponse->getData()->asXML());
     }
     $url = $purchaseResponse->getRedirectUrl();
     if (empty($url)) {
         $ex = new FinancialException('Payment failed.');
         $ex->setFinancialTransaction($transaction);
         $transaction->setResponseCode('FAILED');
         $transaction->setReasonCode('FAILED');
         $transaction->setState(FinancialTransactionInterface::STATE_FAILED);
         if ($this->logger) {
             $this->logger->info(sprintf('Payment failed for transaction "%s" with reason: ', $transaction->getTrackingId(), $purchaseResponse->getMessage()));
         }
         throw $ex;
     }
     $actionRequest = new ActionRequiredException('Redirect the user to MultiSafepay.');
     $actionRequest->setFinancialTransaction($transaction);
     $actionRequest->setAction(new VisitUrl($purchaseResponse->getRedirectUrl()));
     if ($this->logger) {
         $this->logger->info(sprintf('Create a new redirect exception for transaction "%s".', $purchaseResponse->getTransactionReference()));
     }
     return $actionRequest;
 }
Пример #3
0
 public function testCompletePurchaseRequest()
 {
     $request = $this->gateway->completePurchase(array('amount' => 10.0));
     $this->assertInstanceOf('Omnipay\\MultiSafepay\\Message\\RestCompletePurchaseRequest', $request);
     $this->assertEquals($request->getAmount(), 10.0);
 }