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; }
public function testCompletePurchaseRequest() { $request = $this->gateway->completePurchase(array('amount' => 10.0)); $this->assertInstanceOf('Omnipay\\MultiSafepay\\Message\\RestCompletePurchaseRequest', $request); $this->assertEquals($request->getAmount(), 10.0); }