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; } }