shell bypass 403
<?php
/**
* Yandex.Kassa driver for Omnipay payment processing library
*
* @link https://github.com/hiqdev/omnipay-yandex-kassa
* @package omnipay-yandex-kassa
* @license MIT
* @copyright Copyright (c) 2019, HiQDev (http://hiqdev.com/)
*/
namespace Omnipay\YandexKassa;
use Omnipay\Common\AbstractGateway;
use Omnipay\Common\Http\ClientInterface;
use Omnipay\YandexKassa\Message\CaptureRequest;
use Omnipay\YandexKassa\Message\CaptureResponse;
use Omnipay\YandexKassa\Message\DetailsRequest;
use Omnipay\YandexKassa\Message\DetailsResponse;
use Omnipay\YandexKassa\Message\IncomingNotificationRequest;
use Omnipay\YandexKassa\Message\PurchaseRequest;
use Symfony\Component\HttpFoundation\Request as HttpRequest;
use YandexCheckout\Client;
/**
* Class Gateway.
*
* @author Dmytro Naumenko <d.naumenko.a@gmail.com>
*/
class Gateway extends AbstractGateway
{
/** @var Client|null */
private $yandexClient;
public function __construct(ClientInterface $httpClient = null, HttpRequest $httpRequest = null)
{
parent::__construct($httpClient, $httpRequest);
}
protected function getYandexClient(): Client
{
if ($this->yandexClient === null) {
$this->yandexClient = new Client();
$this->yandexClient->setAuth($this->getShopId(), $this->getSecret());
}
return $this->yandexClient;
}
public function getName()
{
return 'Yandex.Kassa';
}
public function getShopId()
{
return $this->getParameter('shopId');
}
public function setShopId($value)
{
return $this->setParameter('shopId', $value);
}
public function getSecret()
{
return $this->getParameter('secret');
}
public function setSecret($value)
{
return $this->setParameter('secret', $value);
}
/**
* @param array $parameters
* @return PurchaseRequest|\Omnipay\Common\Message\AbstractRequest
*/
public function purchase(array $parameters = [])
{
return $this->createRequest(PurchaseRequest::class, $this->injectYandexClient($parameters));
}
/**
* @param array $parameters
* @return CaptureResponse|\Omnipay\Common\Message\AbstractRequest
*/
public function capture(array $parameters = [])
{
return $this->createRequest(CaptureRequest::class, $this->injectYandexClient($parameters));
}
/**
* @param array $parameters
* @return \Omnipay\Common\Message\AbstractRequest|DetailsRequest
*/
public function details(array $parameters = [])
{
return $this->createRequest(DetailsRequest::class, $this->injectYandexClient($parameters));
}
/**
* @param array $parameters
* @return \Omnipay\Common\Message\AbstractRequest|DetailsResponse
*/
public function notification(array $parameters = [])
{
return $this->createRequest(IncomingNotificationRequest::class, $this->injectYandexClient($parameters));
}
private function injectYandexClient(array $parameters): array
{
$parameters['yandexClient'] = $this->getYandexClient();
return $parameters;
}
}