whoami7 - Manager
:
/
home
/
kckglobal
/
www
/
portal
/
vendor
/
paypal
/
rest-api-sdk-php
/
lib
/
PayPal
/
Core
/
Upload File:
files >> //home/kckglobal/www/portal/vendor/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalHttpConfig.php
<?php namespace PayPal\Core; use PayPal\Exception\PayPalConfigurationException; /** * Class PayPalHttpConfig * Http Configuration Class * * @package PayPal\Core */ class PayPalHttpConfig { /** * Some default options for curl * These are typically overridden by PayPalConnectionManager * * @var array */ public static $defaultCurlOptions = array( CURLOPT_SSLVERSION => 6, CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 60, // maximum number of seconds to allow cURL functions to execute CURLOPT_USERAGENT => 'PayPal-PHP-SDK', CURLOPT_HTTPHEADER => array(), CURLOPT_SSL_VERIFYHOST => 2, CURLOPT_SSL_VERIFYPEER => 1, CURLOPT_SSL_CIPHER_LIST => 'TLSv1:TLSv1.2' //Allowing TLSv1 cipher list. //Adding it like this for backward compatibility with older versions of curl ); const HEADER_SEPARATOR = ';'; const HTTP_GET = 'GET'; const HTTP_POST = 'POST'; private $headers = array(); private $curlOptions; private $url; private $method; /*** * Number of times to retry a failed HTTP call */ private $retryCount = 0; /** * Default Constructor * * @param string $url * @param string $method HTTP method (GET, POST etc) defaults to POST * @param array $configs All Configurations */ public function __construct($url = null, $method = self::HTTP_POST, $configs = array()) { $this->url = $url; $this->method = $method; $this->curlOptions = $this->getHttpConstantsFromConfigs($configs, 'http.') + self::$defaultCurlOptions; // Update the Cipher List based on OpenSSL or NSS settings $curl = curl_version(); $sslVersion = isset($curl['ssl_version']) ? $curl['ssl_version'] : ''; if($sslVersion && substr_compare($sslVersion, "NSS/", 0, strlen("NSS/")) === 0) { //Remove the Cipher List for NSS $this->removeCurlOption(CURLOPT_SSL_CIPHER_LIST); } } /** * Gets Url * * @return null|string */ public function getUrl() { return $this->url; } /** * Gets Method * * @return string */ public function getMethod() { return $this->method; } /** * Gets all Headers * * @return array */ public function getHeaders() { return $this->headers; } /** * Get Header by Name * * @param $name * @return string|null */ public function getHeader($name) { if (array_key_exists($name, $this->headers)) { return $this->headers[$name]; } return null; } /** * Sets Url * * @param $url */ public function setUrl($url) { $this->url = $url; } /** * Set Headers * * @param array $headers */ public function setHeaders(array $headers = array()) { $this->headers = $headers; } /** * Adds a Header * * @param $name * @param $value * @param bool $overWrite allows you to override header value */ public function addHeader($name, $value, $overWrite = true) { if (!array_key_exists($name, $this->headers) || $overWrite) { $this->headers[$name] = $value; } else { $this->headers[$name] = $this->headers[$name] . self::HEADER_SEPARATOR . $value; } } /** * Removes a Header * * @param $name */ public function removeHeader($name) { unset($this->headers[$name]); } /** * Gets all curl options * * @return array */ public function getCurlOptions() { return $this->curlOptions; } /** * Add Curl Option * * @param string $name * @param mixed $value */ public function addCurlOption($name, $value) { $this->curlOptions[$name] = $value; } /** * Removes a curl option from the list * * @param $name */ public function removeCurlOption($name) { unset($this->curlOptions[$name]); } /** * Set Curl Options. Overrides all curl options * * @param $options */ public function setCurlOptions($options) { $this->curlOptions = $options; } /** * Set ssl parameters for certificate based client authentication * * @param $certPath * @param null $passPhrase */ public function setSSLCert($certPath, $passPhrase = null) { $this->curlOptions[CURLOPT_SSLCERT] = realpath($certPath); if (isset($passPhrase) && trim($passPhrase) != "") { $this->curlOptions[CURLOPT_SSLCERTPASSWD] = $passPhrase; } } /** * Set connection timeout in seconds * * @param integer $timeout */ public function setHttpTimeout($timeout) { $this->curlOptions[CURLOPT_CONNECTTIMEOUT] = $timeout; } /** * Set HTTP proxy information * * @param string $proxy * @throws PayPalConfigurationException */ public function setHttpProxy($proxy) { $urlParts = parse_url($proxy); if ($urlParts == false || !array_key_exists("host", $urlParts)) { throw new PayPalConfigurationException("Invalid proxy configuration " . $proxy); } $this->curlOptions[CURLOPT_PROXY] = $urlParts["host"]; if (isset($urlParts["port"])) { $this->curlOptions[CURLOPT_PROXY] .= ":" . $urlParts["port"]; } if (isset($urlParts["user"])) { $this->curlOptions[CURLOPT_PROXYUSERPWD] = $urlParts["user"] . ":" . $urlParts["pass"]; } } /** * Set Http Retry Counts * * @param int $retryCount */ public function setHttpRetryCount($retryCount) { $this->retryCount = $retryCount; } /** * Get Http Retry Counts * * @return int */ public function getHttpRetryCount() { return $this->retryCount; } /** * Sets the User-Agent string on the HTTP request * * @param string $userAgentString */ public function setUserAgent($userAgentString) { $this->curlOptions[CURLOPT_USERAGENT] = $userAgentString; } /** * Retrieves an array of constant key, and value based on Prefix * * @param array $configs * @param $prefix * @return array */ public function getHttpConstantsFromConfigs($configs = array(), $prefix) { $arr = array(); if ($prefix != null && is_array($configs)) { foreach ($configs as $k => $v) { // Check if it startsWith if (substr($k, 0, strlen($prefix)) === $prefix) { $newKey = ltrim($k, $prefix); if (defined($newKey)) { $arr[constant($newKey)] = $v; } } } } return $arr; } }
Copyright ©2021 || Defacer Indonesia