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\Data\PaymentDataObjectInterface;
use Magento\Payment\Gateway\Request\BuilderInterface;
class AuthorizationRequest 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 $payment */
$payment = $buildSubject['payment'];
$order = $payment->getOrder();
$address = $order->getShippingAddress();
return [
'TXN_TYPE' => 'A',
'INVOICE' => $order->getOrderIncrementId(),
'AMOUNT' => $order->getGrandTotalAmount(),
'CURRENCY' => $order->getCurrencyCode(),
'EMAIL' => $address->getEmail(),
'MERCHANT_KEY' => $this->config->getValue(
'merchant_gateway_key',
$order->getStoreId()
)
];