Esempio n. 1
0
 /**
  * @param CheckoutRequestType $request
  * @return string A uri
  * @throws BadResponseException
  */
 public function checkout(CheckoutRequestType $request)
 {
     // Prepare data
     $postData = ['ic_version' => self::API_VERSION, 'ic_country' => $request->getCountry(), 'ic_language' => $request->getLanguage(), 'ic_currency' => $request->getCurrency(), 'ic_amount' => $request->getAmount(), 'ic_orderid' => $request->getOrderID(), 'ic_reference' => $request->getReference(), 'ic_description' => $request->getDescription(), 'ic_urlcompleted' => $request->getURLCompleted(), 'ic_urlerror' => $request->getURLError(), 'ic_merchantid' => $request->getMerchantID(), 'chk' => sha1(implode('|', [$request->getMerchantID(), $this->secretCode, $request->getAmount(), $request->getOrderID(), $request->getReference(), $request->getCurrency(), $request->getCountry(), $request->getURLCompleted(), $request->getURLError()]))];
     // There is no payment method specified to just generate the basic uri.
     if (empty($request->getPaymentMethod()) || empty($request->getIssuer())) {
         $uri = (new Uri($this->getHttpClient()->getConfig('base_uri')))->withPath('/basic/')->withQuery(http_build_query($postData, null, '&', PHP_QUERY_RFC3986));
         return (string) $uri;
     }
     // Prepare data for request
     $postData['ic_paymentmethod'] = $request->getPaymentMethod();
     $postData['ic_issuer'] = $request->getIssuer();
     $queryString = ['type' => $request->getPaymentMethod(), 'checkout' => 'yes', 'ic_redirect' => 'no'];
     // Request the payment uri
     $response = $this->getHttpClient()->post('/basic/', ['form_params' => $postData, 'query' => $queryString]);
     // Validate response
     if ($response->getStatusCode() !== 200) {
         throw BadResponseException::forFailedRequest($response);
     }
     $uri = $response->getBody()->getContents();
     $uriParts = parse_url($uri);
     if ($uriParts === false || !isset($uriParts['scheme']) || !isset($uriParts['host'])) {
         throw BadResponseException::forUnexpectedContent($response, 'valid uri');
     }
     return $uri;
 }
Esempio n. 2
0
 /**
  * @param CheckoutRequestType $parameters
  * @return CheckoutResponseType
  */
 public function checkout(CheckoutRequestType $parameters)
 {
     Assert::lazy()->that($parameters->getPaymentMethod(), 'PaymentMethod')->notEmpty()->that($parameters->getIssuer(), 'Issuer')->notEmpty()->verifyNow();
     $response = $this->soapCall('Checkout', $parameters);
     return $this->checkResponse($response, 'CheckoutResult');
 }
 /**
  * @inheritdoc
  * @param string $consumerId
  */
 public function __construct($consumerId, $orderId, $amount, $currency, $country, $language, $endUserIP, $paymentMethod, $paymentIssuer)
 {
     parent::__construct($orderId, $amount, $currency, $country, $language, $endUserIP, $paymentMethod, $paymentIssuer);
     Assert::lazy()->that($consumerId, 'consumerId')->notEmpty()->that($paymentMethod, 'paymentMethod')->notEmpty()->that($paymentIssuer, 'paymentIssuer')->notEmpty()->verifyNow();
     $this->ConsumerID = $consumerId;
 }