Файл: sngine-v2.8/Script/includes/libs/PayPal/paypal/rest-api-sdk-php/lib/PayPal/Transport/PayPalRestCall.php
Строк: 98
<?php
namespace PayPalTransport;
use PayPalCorePayPalHttpConfig;
use PayPalCorePayPalHttpConnection;
use PayPalCorePayPalLoggingManager;
use PayPalRestApiContext;
/**
* Class PayPalRestCall
*
* @package PayPalTransport
*/
class PayPalRestCall
{
/**
* Paypal Logger
*
* @var PayPalLoggingManager logger interface
*/
private $logger;
/**
* API Context
*
* @var ApiContext
*/
private $apiContext;
/**
* Default Constructor
*
* @param ApiContext $apiContext
*/
public function __construct(ApiContext $apiContext)
{
$this->apiContext = $apiContext;
$this->logger = PayPalLoggingManager::getInstance(__CLASS__);
}
/**
* @param array $handlers Array of handlers
* @param string $path Resource path relative to base service endpoint
* @param string $method HTTP method - one of GET, POST, PUT, DELETE, PATCH etc
* @param string $data Request payload
* @param array $headers HTTP headers
* @return mixed
* @throws PayPalExceptionPayPalConnectionException
*/
public function execute($handlers = array(), $path, $method, $data = '', $headers = array())
{
$config = $this->apiContext->getConfig();
$httpConfig = new PayPalHttpConfig(null, $method, $config);
$headers = $headers ? $headers : array();
$httpConfig->setHeaders($headers +
array(
'Content-Type' => 'application/json'
)
);
// if proxy set via config, add it
if (!empty($config['http.Proxy'])) {
$httpConfig->setHttpProxy($config['http.Proxy']);
}
/** @var PaypalHandlerIPayPalHandler $handler */
foreach ($handlers as $handler) {
if (!is_object($handler)) {
$fullHandler = "\" . (string)$handler;
$handler = new $fullHandler($this->apiContext);
}
$handler->handle($httpConfig, $data, array('path' => $path, 'apiContext' => $this->apiContext));
}
$connection = new PayPalHttpConnection($httpConfig, $config);
$response = $connection->execute($data);
return $response;
}
}