<?php /** * ###### * ###### * ############ ####( ###### #####. ###### ############ ############ * ############# #####( ###### #####. ###### ############# ############# * ###### #####( ###### #####. ###### ##### ###### ##### ###### * ###### ###### #####( ###### #####. ###### ##### ##### ##### ###### * ###### ###### #####( ###### #####. ###### ##### ##### ###### * ############# ############# ############# ############# ##### ###### * ############ ############ ############# ############ ##### ###### * ###### * ############# * ############ * * Adyen Payment module (https://www.adyen.com/) * * Copyright (c) 2015 Adyen BV (https://www.adyen.com/) * See LICENSE.txt for license details. * * Author: Adyen <magento@adyen.com> */ namespace Adyen\Payment\Gateway\Http\Client; use Magento\Payment\Gateway\Http\ClientInterface; /** * Class TransactionSale */ class TransactionRefund implements ClientInterface { /** * PaymentRequest constructor. * * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor * @param \Adyen\Payment\Helper\Data $adyenHelper * @param \Adyen\Payment\Logger\AdyenLogger $adyenLogger * @param \Adyen\Payment\Model\RecurringType $recurringType * @param array $data */ public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Encryption\EncryptorInterface $encryptor, \Adyen\Payment\Helper\Data $adyenHelper, \Adyen\Payment\Logger\AdyenLogger $adyenLogger, \Adyen\Payment\Model\RecurringType $recurringType, array $data = [] ) { $this->_encryptor = $encryptor; $this->_adyenHelper = $adyenHelper; $this->_adyenLogger = $adyenLogger; $this->_recurringType = $recurringType; $this->_appState = $context->getAppState(); // initialize client $webserviceUsername = $this->_adyenHelper->getWsUsername(); $webservicePassword = $this->_adyenHelper->getWsPassword(); $client = new \Adyen\Client(); $client->setApplicationName("Magento 2 plugin"); $client->setUsername($webserviceUsername); $client->setPassword($webservicePassword); $client->setAdyenPaymentSource($this->_adyenHelper->getModuleName(), $this->_adyenHelper->getModuleVersion()); $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $productMetadata = $objectManager->get('Magento\Framework\App\ProductMetadataInterface'); $client->setExternalPlatform($productMetadata->getName(), $productMetadata->getVersion()); if ($this->_adyenHelper->isDemoMode()) { $client->setEnvironment(\Adyen\Environment::TEST); } else { $client->setEnvironment(\Adyen\Environment::LIVE); } // assign magento log $client->setLogger($adyenLogger); $this->_client = $client; } /** * @param \Magento\Payment\Gateway\Http\TransferInterface $transferObject * @return null */ public function placeRequest(\Magento\Payment\Gateway\Http\TransferInterface $transferObject) { $requests = $transferObject->getBody(); $responses = []; foreach ($requests as $request) { // call lib $service = new \Adyen\Service\Modification($this->_client); try { $responses[] = $service->refund($request); } catch(\Adyen\AdyenException $e) { $responses[] = null; } } return $responses; } }