for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Pagantis\Pagantis\Gateway\Request;
use Magento\Payment\Gateway\ConfigInterface;
use Magento\Payment\Gateway\Request\BuilderInterface;
use Magento\Payment\Gateway\Data\PaymentDataObjectInterface;
use Magento\Sales\Api\Data\OrderPaymentInterface;
class VoidRequest implements BuilderInterface
{
* @var ConfigInterface
private $config;
* @param ConfigInterface $config
public function __construct(
ConfigInterface $config
) {
$this->config = $config;
}
* Builds ENV request
*
* @param array $buildSubject
* @return array
public function build(array $buildSubject)
if (!isset($buildSubject['payment'])
|| !$buildSubject['payment'] instanceof PaymentDataObjectInterface
throw new \InvalidArgumentException('Payment data object should be provided');
/** @var PaymentDataObjectInterface $paymentDO */
$paymentDO = $buildSubject['payment'];
$order = $paymentDO->getOrder();
$payment = $paymentDO->getPayment();
if (!$payment instanceof OrderPaymentInterface) {
throw new \LogicException('Order payment should be provided.');
return [
'TXN_TYPE' => 'V',
'TXN_ID' => $payment->getLastTransId(),
'MERCHANT_KEY' => $this->config->getValue(
'merchant_gateway_key',
$order->getStoreId()
)
];