1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Payment\Gateway\Http\Client;
- use Magento\Framework\Webapi\Soap\ClientFactory;
- use Magento\Payment\Gateway\Http\ClientInterface;
- use Magento\Payment\Gateway\Http\ConverterInterface;
- use Magento\Payment\Gateway\Http\TransferInterface;
- use Magento\Payment\Model\Method\Logger;
- /**
- * Class Soap
- * @package Magento\Payment\Gateway\Http\Client
- * @api
- * @since 100.0.2
- */
- class Soap implements ClientInterface
- {
- /**
- * @var Logger
- */
- private $logger;
- /**
- * @var ConverterInterface | null
- */
- private $converter;
- /**
- * @var ClientFactory
- */
- private $clientFactory;
- /**
- * @param Logger $logger
- * @param ClientFactory $clientFactory
- * @param ConverterInterface | null $converter
- */
- public function __construct(
- Logger $logger,
- ClientFactory $clientFactory,
- ConverterInterface $converter = null
- ) {
- $this->logger = $logger;
- $this->converter = $converter;
- $this->clientFactory = $clientFactory;
- }
- /**
- * Places request to gateway. Returns result as ENV array
- *
- * @param TransferInterface $transferObject
- * @return array
- * @throws \Magento\Payment\Gateway\Http\ClientException
- * @throws \Magento\Payment\Gateway\Http\ConverterException
- * @throws \Exception
- */
- public function placeRequest(TransferInterface $transferObject)
- {
- $this->logger->debug(['request' => $transferObject->getBody()]);
- $client = $this->clientFactory->create(
- $transferObject->getClientConfig()['wsdl'],
- ['trace' => true]
- );
- try {
- $client->__setSoapHeaders($transferObject->getHeaders());
- $response = $client->__soapCall(
- $transferObject->getMethod(),
- [$transferObject->getBody()]
- );
- $result = $this->converter
- ? $this->converter->convert(
- $response
- )
- : [$response];
- $this->logger->debug(['response' => $result]);
- } catch (\Exception $e) {
- $this->logger->debug(['trace' => $client->__getLastRequest()]);
- throw $e;
- }
- return $result;
- }
- }
|