| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- <?php
- namespace Stripe;
- /**
- * Class Stripe.
- */
- class Stripe
- {
- /** @var string The Stripe API key to be used for requests. */
- public static $apiKey;
- /** @var string The Stripe client_id to be used for Connect requests. */
- public static $clientId;
- /** @var string The base URL for the Stripe API. */
- public static $apiBase = 'https://api.stripe.com';
- /** @var string The base URL for the OAuth API. */
- public static $connectBase = 'https://connect.stripe.com';
- /** @var string The base URL for the Stripe API uploads endpoint. */
- public static $apiUploadBase = 'https://files.stripe.com';
- /** @var null|string The version of the Stripe API to use for requests. */
- public static $apiVersion = null;
- /** @var null|string The account ID for connected accounts requests. */
- public static $accountId = null;
- /** @var string Path to the CA bundle used to verify SSL certificates */
- public static $caBundlePath = null;
- /** @var bool Defaults to true. */
- public static $verifySslCerts = true;
- /** @var array The application's information (name, version, URL) */
- public static $appInfo = null;
- /**
- * @var null|Util\LoggerInterface the logger to which the library will
- * produce messages
- */
- public static $logger = null;
- /** @var int Maximum number of request retries */
- public static $maxNetworkRetries = 0;
- /** @var bool Whether client telemetry is enabled. Defaults to true. */
- public static $enableTelemetry = true;
- /** @var float Maximum delay between retries, in seconds */
- private static $maxNetworkRetryDelay = 2.0;
- /** @var float Maximum delay between retries, in seconds, that will be respected from the Stripe API */
- private static $maxRetryAfter = 60.0;
- /** @var float Initial delay between retries, in seconds */
- private static $initialNetworkRetryDelay = 0.5;
- const VERSION = '7.67.0';
- /**
- * @return string the API key used for requests
- */
- public static function getApiKey()
- {
- return self::$apiKey;
- }
- /**
- * @return string the client_id used for Connect requests
- */
- public static function getClientId()
- {
- return self::$clientId;
- }
- /**
- * @return Util\LoggerInterface the logger to which the library will
- * produce messages
- */
- public static function getLogger()
- {
- if (null === self::$logger) {
- return new Util\DefaultLogger();
- }
- return self::$logger;
- }
- /**
- * @param Util\LoggerInterface $logger the logger to which the library
- * will produce messages
- */
- public static function setLogger($logger)
- {
- self::$logger = $logger;
- }
- /**
- * Sets the API key to be used for requests.
- *
- * @param string $apiKey
- */
- public static function setApiKey($apiKey)
- {
- self::$apiKey = $apiKey;
- }
- /**
- * Sets the client_id to be used for Connect requests.
- *
- * @param string $clientId
- */
- public static function setClientId($clientId)
- {
- self::$clientId = $clientId;
- }
- /**
- * @return string The API version used for requests. null if we're using the
- * latest version.
- */
- public static function getApiVersion()
- {
- return self::$apiVersion;
- }
- /**
- * @param string $apiVersion the API version to use for requests
- */
- public static function setApiVersion($apiVersion)
- {
- self::$apiVersion = $apiVersion;
- }
- /**
- * @return string
- */
- private static function getDefaultCABundlePath()
- {
- return \realpath(__DIR__ . '/../data/ca-certificates.crt');
- }
- /**
- * @return string
- */
- public static function getCABundlePath()
- {
- return self::$caBundlePath ?: self::getDefaultCABundlePath();
- }
- /**
- * @param string $caBundlePath
- */
- public static function setCABundlePath($caBundlePath)
- {
- self::$caBundlePath = $caBundlePath;
- }
- /**
- * @return bool
- */
- public static function getVerifySslCerts()
- {
- return self::$verifySslCerts;
- }
- /**
- * @param bool $verify
- */
- public static function setVerifySslCerts($verify)
- {
- self::$verifySslCerts = $verify;
- }
- /**
- * @return string | null The Stripe account ID for connected account
- * requests
- */
- public static function getAccountId()
- {
- return self::$accountId;
- }
- /**
- * @param string $accountId the Stripe account ID to set for connected
- * account requests
- */
- public static function setAccountId($accountId)
- {
- self::$accountId = $accountId;
- }
- /**
- * @return array | null The application's information
- */
- public static function getAppInfo()
- {
- return self::$appInfo;
- }
- /**
- * @param string $appName The application's name
- * @param null|string $appVersion The application's version
- * @param null|string $appUrl The application's URL
- * @param null|string $appPartnerId The application's partner ID
- */
- public static function setAppInfo($appName, $appVersion = null, $appUrl = null, $appPartnerId = null)
- {
- self::$appInfo = self::$appInfo ?: [];
- self::$appInfo['name'] = $appName;
- self::$appInfo['partner_id'] = $appPartnerId;
- self::$appInfo['url'] = $appUrl;
- self::$appInfo['version'] = $appVersion;
- }
- /**
- * @return int Maximum number of request retries
- */
- public static function getMaxNetworkRetries()
- {
- return self::$maxNetworkRetries;
- }
- /**
- * @param int $maxNetworkRetries Maximum number of request retries
- */
- public static function setMaxNetworkRetries($maxNetworkRetries)
- {
- self::$maxNetworkRetries = $maxNetworkRetries;
- }
- /**
- * @return float Maximum delay between retries, in seconds
- */
- public static function getMaxNetworkRetryDelay()
- {
- return self::$maxNetworkRetryDelay;
- }
- /**
- * @return float Maximum delay between retries, in seconds, that will be respected from the Stripe API
- */
- public static function getMaxRetryAfter()
- {
- return self::$maxRetryAfter;
- }
- /**
- * @return float Initial delay between retries, in seconds
- */
- public static function getInitialNetworkRetryDelay()
- {
- return self::$initialNetworkRetryDelay;
- }
- /**
- * @return bool Whether client telemetry is enabled
- */
- public static function getEnableTelemetry()
- {
- return self::$enableTelemetry;
- }
- /**
- * @param bool $enableTelemetry Enables client telemetry.
- *
- * Client telemetry enables timing and request metrics to be sent back to Stripe as an HTTP Header
- * with the current request. This enables Stripe to do latency and metrics analysis without adding extra
- * overhead (such as extra network calls) on the client.
- */
- public static function setEnableTelemetry($enableTelemetry)
- {
- self::$enableTelemetry = $enableTelemetry;
- }
- }
|