![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-payment/Gateway/Http/Client/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Payment\Gateway\Http\Client; use Laminas\Http\Exception\RuntimeException; use Laminas\Http\Request; use LogicException; use Magento\Framework\HTTP\LaminasClient; use Magento\Framework\HTTP\LaminasClientFactory; use Magento\Payment\Gateway\Http\ClientException; use Magento\Payment\Gateway\Http\ClientInterface; use Magento\Payment\Gateway\Http\ConverterException; use Magento\Payment\Gateway\Http\ConverterInterface; use Magento\Payment\Gateway\Http\TransferInterface; use Magento\Payment\Model\Method\Logger; /** * @api * @since 100.0.2 */ class Zend implements ClientInterface { /** * @var LaminasClientFactory */ private $clientFactory; /** * @var ConverterInterface | null */ private $converter; /** * @var Logger */ private $logger; /** * @param LaminasClientFactory $clientFactory * @param Logger $logger * @param ConverterInterface|null $converter */ public function __construct( LaminasClientFactory $clientFactory, Logger $logger, ConverterInterface $converter = null ) { $this->clientFactory = $clientFactory; $this->converter = $converter; $this->logger = $logger; } /** * @inheritdoc */ public function placeRequest(TransferInterface $transferObject) { $log = [ 'request' => $transferObject->getBody(), 'request_uri' => $transferObject->getUri() ]; $result = []; /** @var LaminasClient $client */ $client = $this->clientFactory->create(); $client->setOptions($transferObject->getClientConfig()); $client->setMethod($transferObject->getMethod()); $methodParam = is_array($transferObject->getBody()) ? $transferObject->getBody() : [$transferObject->getBody()]; switch ($transferObject->getMethod()) { case Request::METHOD_GET: $client->setParameterGet($methodParam); break; case Request::METHOD_POST: $client->setParameterPost($methodParam); break; default: throw new LogicException( sprintf( 'Unsupported HTTP method %s', $transferObject->getMethod() ) ); } $client->setHeaders($transferObject->getHeaders()); $client->setUrlEncodeBody($transferObject->shouldEncode()); $client->setUri($transferObject->getUri()); try { $response = $client->send(); $result = $this->converter ? $this->converter->convert($response->getBody()) : [$response->getBody()]; $log['response'] = $result; } catch (RuntimeException $e) { throw new ClientException(__($e->getMessage())); } catch (ConverterException $e) { throw $e; } finally { $this->logger->debug($log); } return $result; } }