This commit is contained in:
Xes
2025-08-14 22:41:49 +02:00
parent 2de81ccc46
commit 8ce45119b6
39774 changed files with 4309466 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
<?php
namespace Stripe\Exception;
/**
* ApiConnection is thrown in the event that the SDK can't connect to Stripe's
* servers. That can be for a variety of different reasons from a downed
* network to a bad TLS certificate.
*/
class ApiConnectionException extends ApiErrorException {}

View File

@@ -0,0 +1,220 @@
<?php
namespace Stripe\Exception;
/**
* Implements properties and methods common to all (non-SPL) Stripe exceptions.
*/
abstract class ApiErrorException extends \Exception implements ExceptionInterface
{
protected $error;
protected $httpBody;
protected $httpHeaders;
protected $httpStatus;
protected $jsonBody;
protected $requestId;
protected $stripeCode;
/**
* Creates a new API error exception.
*
* @param string $message the exception message
* @param null|int $httpStatus the HTTP status code
* @param null|string $httpBody the HTTP body as a string
* @param null|array $jsonBody the JSON deserialized body
* @param null|array|\Stripe\Util\CaseInsensitiveArray $httpHeaders the HTTP headers array
* @param null|string $stripeCode the Stripe error code
*
* @return static
*/
public static function factory(
$message,
$httpStatus = null,
$httpBody = null,
$jsonBody = null,
$httpHeaders = null,
$stripeCode = null
) {
$instance = new static($message);
$instance->setHttpStatus($httpStatus);
$instance->setHttpBody($httpBody);
$instance->setJsonBody($jsonBody);
$instance->setHttpHeaders($httpHeaders);
$instance->setStripeCode($stripeCode);
$instance->setRequestId(null);
if ($httpHeaders && isset($httpHeaders['Request-Id'])) {
$instance->setRequestId($httpHeaders['Request-Id']);
}
$instance->setError($instance->constructErrorObject());
return $instance;
}
/**
* Gets the Stripe error object.
*
* @return null|\Stripe\ErrorObject
*/
public function getError()
{
return $this->error;
}
/**
* Sets the Stripe error object.
*
* @param null|\Stripe\ErrorObject $error
*/
public function setError($error)
{
$this->error = $error;
}
/**
* Gets the HTTP body as a string.
*
* @return null|string
*/
public function getHttpBody()
{
return $this->httpBody;
}
/**
* Sets the HTTP body as a string.
*
* @param null|string $httpBody
*/
public function setHttpBody($httpBody)
{
$this->httpBody = $httpBody;
}
/**
* Gets the HTTP headers array.
*
* @return null|array|\Stripe\Util\CaseInsensitiveArray
*/
public function getHttpHeaders()
{
return $this->httpHeaders;
}
/**
* Sets the HTTP headers array.
*
* @param null|array|\Stripe\Util\CaseInsensitiveArray $httpHeaders
*/
public function setHttpHeaders($httpHeaders)
{
$this->httpHeaders = $httpHeaders;
}
/**
* Gets the HTTP status code.
*
* @return null|int
*/
public function getHttpStatus()
{
return $this->httpStatus;
}
/**
* Sets the HTTP status code.
*
* @param null|int $httpStatus
*/
public function setHttpStatus($httpStatus)
{
$this->httpStatus = $httpStatus;
}
/**
* Gets the JSON deserialized body.
*
* @return null|array<string, mixed>
*/
public function getJsonBody()
{
return $this->jsonBody;
}
/**
* Sets the JSON deserialized body.
*
* @param null|array<string, mixed> $jsonBody
*/
public function setJsonBody($jsonBody)
{
$this->jsonBody = $jsonBody;
}
/**
* Gets the Stripe request ID.
*
* @return null|string
*/
public function getRequestId()
{
return $this->requestId;
}
/**
* Sets the Stripe request ID.
*
* @param null|string $requestId
*/
public function setRequestId($requestId)
{
$this->requestId = $requestId;
}
/**
* Gets the Stripe error code.
*
* Cf. the `CODE_*` constants on {@see \Stripe\ErrorObject} for possible
* values.
*
* @return null|string
*/
public function getStripeCode()
{
return $this->stripeCode;
}
/**
* Sets the Stripe error code.
*
* @param null|string $stripeCode
*/
public function setStripeCode($stripeCode)
{
$this->stripeCode = $stripeCode;
}
/**
* Returns the string representation of the exception.
*
* @return string
*/
public function __toString()
{
$parentStr = parent::__toString();
$statusStr = (null === $this->getHttpStatus()) ? '' : "(Status {$this->getHttpStatus()}) ";
$idStr = (null === $this->getRequestId()) ? '' : "(Request {$this->getRequestId()}) ";
return "Error sending request to Stripe: {$statusStr}{$idStr}{$this->getMessage()}\n{$parentStr}";
}
protected function constructErrorObject()
{
if (null === $this->jsonBody || !\array_key_exists('error', $this->jsonBody)) {
return null;
}
return \Stripe\ErrorObject::constructFrom($this->jsonBody['error']);
}
}

View File

@@ -0,0 +1,9 @@
<?php
namespace Stripe\Exception;
/**
* AuthenticationException is thrown when invalid credentials are used to
* connect to Stripe's servers.
*/
class AuthenticationException extends ApiErrorException {}

View File

@@ -0,0 +1,5 @@
<?php
namespace Stripe\Exception;
class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface {}

View File

@@ -0,0 +1,84 @@
<?php
namespace Stripe\Exception;
/**
* CardException is thrown when a user enters a card that can't be charged for
* some reason.
*/
class CardException extends ApiErrorException
{
protected $declineCode;
protected $stripeParam;
/**
* Creates a new CardException exception.
*
* @param string $message the exception message
* @param null|int $httpStatus the HTTP status code
* @param null|string $httpBody the HTTP body as a string
* @param null|array $jsonBody the JSON deserialized body
* @param null|array|\Stripe\Util\CaseInsensitiveArray $httpHeaders the HTTP headers array
* @param null|string $stripeCode the Stripe error code
* @param null|string $declineCode the decline code
* @param null|string $stripeParam the parameter related to the error
*
* @return CardException
*/
public static function factory(
$message,
$httpStatus = null,
$httpBody = null,
$jsonBody = null,
$httpHeaders = null,
$stripeCode = null,
$declineCode = null,
$stripeParam = null
) {
$instance = parent::factory($message, $httpStatus, $httpBody, $jsonBody, $httpHeaders, $stripeCode);
$instance->setDeclineCode($declineCode);
$instance->setStripeParam($stripeParam);
return $instance;
}
/**
* Gets the decline code.
*
* @return null|string
*/
public function getDeclineCode()
{
return $this->declineCode;
}
/**
* Sets the decline code.
*
* @param null|string $declineCode
*/
public function setDeclineCode($declineCode)
{
$this->declineCode = $declineCode;
}
/**
* Gets the parameter related to the error.
*
* @return null|string
*/
public function getStripeParam()
{
return $this->stripeParam;
}
/**
* Sets the parameter related to the error.
*
* @param null|string $stripeParam
*/
public function setStripeParam($stripeParam)
{
$this->stripeParam = $stripeParam;
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace Stripe\Exception;
// TODO: remove this check once we drop support for PHP 5
if (\interface_exists(\Throwable::class, false)) {
/**
* The base interface for all Stripe exceptions.
*/
interface ExceptionInterface extends \Throwable {}
} else {
/**
* The base interface for all Stripe exceptions.
*/
// phpcs:disable PSR1.Classes.ClassDeclaration.MultipleClasses
interface ExceptionInterface {}
// phpcs:enable
}

View File

@@ -0,0 +1,9 @@
<?php
namespace Stripe\Exception;
/**
* IdempotencyException is thrown in cases where an idempotency key was used
* improperly.
*/
class IdempotencyException extends ApiErrorException {}

View File

@@ -0,0 +1,5 @@
<?php
namespace Stripe\Exception;
class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface {}

View File

@@ -0,0 +1,60 @@
<?php
namespace Stripe\Exception;
/**
* InvalidRequestException is thrown when a request is initiated with invalid
* parameters.
*/
class InvalidRequestException extends ApiErrorException
{
protected $stripeParam;
/**
* Creates a new InvalidRequestException exception.
*
* @param string $message the exception message
* @param null|int $httpStatus the HTTP status code
* @param null|string $httpBody the HTTP body as a string
* @param null|array $jsonBody the JSON deserialized body
* @param null|array|\Stripe\Util\CaseInsensitiveArray $httpHeaders the HTTP headers array
* @param null|string $stripeCode the Stripe error code
* @param null|string $stripeParam the parameter related to the error
*
* @return InvalidRequestException
*/
public static function factory(
$message,
$httpStatus = null,
$httpBody = null,
$jsonBody = null,
$httpHeaders = null,
$stripeCode = null,
$stripeParam = null
) {
$instance = parent::factory($message, $httpStatus, $httpBody, $jsonBody, $httpHeaders, $stripeCode);
$instance->setStripeParam($stripeParam);
return $instance;
}
/**
* Gets the parameter related to the error.
*
* @return null|string
*/
public function getStripeParam()
{
return $this->stripeParam;
}
/**
* Sets the parameter related to the error.
*
* @param null|string $stripeParam
*/
public function setStripeParam($stripeParam)
{
$this->stripeParam = $stripeParam;
}
}

View File

@@ -0,0 +1,8 @@
<?php
namespace Stripe\Exception\OAuth;
/**
* The base interface for all Stripe OAuth exceptions.
*/
interface ExceptionInterface extends \Stripe\Exception\ExceptionInterface {}

View File

@@ -0,0 +1,10 @@
<?php
namespace Stripe\Exception\OAuth;
/**
* InvalidClientException is thrown when the client_id does not belong to you,
* the stripe_user_id does not exist or is not connected to your application,
* or the API key mode (live or test mode) does not match the client_id mode.
*/
class InvalidClientException extends OAuthErrorException {}

View File

@@ -0,0 +1,11 @@
<?php
namespace Stripe\Exception\OAuth;
/**
* InvalidGrantException is thrown when a specified code doesn't exist, is
* expired, has been used, or doesn't belong to you; a refresh token doesn't
* exist, or doesn't belong to you; or if an API key's mode (live or test)
* doesn't match the mode of a code or refresh token.
*/
class InvalidGrantException extends OAuthErrorException {}

View File

@@ -0,0 +1,9 @@
<?php
namespace Stripe\Exception\OAuth;
/**
* InvalidRequestException is thrown when a code, refresh token, or grant
* type parameter is not provided, but was required.
*/
class InvalidRequestException extends OAuthErrorException {}

View File

@@ -0,0 +1,8 @@
<?php
namespace Stripe\Exception\OAuth;
/**
* InvalidScopeException is thrown when an invalid scope parameter is provided.
*/
class InvalidScopeException extends OAuthErrorException {}

View File

@@ -0,0 +1,19 @@
<?php
namespace Stripe\Exception\OAuth;
/**
* Implements properties and methods common to all (non-SPL) Stripe OAuth
* exceptions.
*/
abstract class OAuthErrorException extends \Stripe\Exception\ApiErrorException
{
protected function constructErrorObject()
{
if (null === $this->jsonBody) {
return null;
}
return \Stripe\OAuthErrorObject::constructFrom($this->jsonBody);
}
}

View File

@@ -0,0 +1,10 @@
<?php
namespace Stripe\Exception\OAuth;
/**
* UnknownApiErrorException is thrown when the client library receives an
* error from the OAuth API it doesn't know about. Receiving this error usually
* means that your client library is outdated and should be upgraded.
*/
class UnknownOAuthErrorException extends OAuthErrorException {}

View File

@@ -0,0 +1,9 @@
<?php
namespace Stripe\Exception\OAuth;
/**
* UnsupportedGrantTypeException is thrown when an unuspported grant type
* parameter is specified.
*/
class UnsupportedGrantTypeException extends OAuthErrorException {}

View File

@@ -0,0 +1,9 @@
<?php
namespace Stripe\Exception\OAuth;
/**
* UnsupportedResponseTypeException is thrown when an unsupported response type
* parameter is specified.
*/
class UnsupportedResponseTypeException extends OAuthErrorException {}

View File

@@ -0,0 +1,9 @@
<?php
namespace Stripe\Exception;
/**
* PermissionException is thrown in cases where access was attempted on a
* resource that wasn't allowed.
*/
class PermissionException extends ApiErrorException {}

View File

@@ -0,0 +1,10 @@
<?php
namespace Stripe\Exception;
/**
* RateLimitException is thrown in cases where an account is putting too much
* load on Stripe's API servers (usually by performing too many requests).
* Please back off on request rate.
*/
class RateLimitException extends InvalidRequestException {}

View File

@@ -0,0 +1,74 @@
<?php
namespace Stripe\Exception;
/**
* SignatureVerificationException is thrown when the signature verification for
* a webhook fails.
*/
class SignatureVerificationException extends \Exception implements ExceptionInterface
{
protected $httpBody;
protected $sigHeader;
/**
* Creates a new SignatureVerificationException exception.
*
* @param string $message the exception message
* @param null|string $httpBody the HTTP body as a string
* @param null|string $sigHeader the `Stripe-Signature` HTTP header
*
* @return SignatureVerificationException
*/
public static function factory(
$message,
$httpBody = null,
$sigHeader = null
) {
$instance = new static($message);
$instance->setHttpBody($httpBody);
$instance->setSigHeader($sigHeader);
return $instance;
}
/**
* Gets the HTTP body as a string.
*
* @return null|string
*/
public function getHttpBody()
{
return $this->httpBody;
}
/**
* Sets the HTTP body as a string.
*
* @param null|string $httpBody
*/
public function setHttpBody($httpBody)
{
$this->httpBody = $httpBody;
}
/**
* Gets the `Stripe-Signature` HTTP header.
*
* @return null|string
*/
public function getSigHeader()
{
return $this->sigHeader;
}
/**
* Sets the `Stripe-Signature` HTTP header.
*
* @param null|string $sigHeader
*/
public function setSigHeader($sigHeader)
{
$this->sigHeader = $sigHeader;
}
}

View File

@@ -0,0 +1,7 @@
<?php
// File generated from our OpenAPI spec
namespace Stripe\Exception;
class TemporarySessionExpiredException extends ApiErrorException {}

View File

@@ -0,0 +1,5 @@
<?php
namespace Stripe\Exception;
class UnexpectedValueException extends \UnexpectedValueException implements ExceptionInterface {}

View File

@@ -0,0 +1,10 @@
<?php
namespace Stripe\Exception;
/**
* UnknownApiErrorException is thrown when the client library receives an
* error from the API it doesn't know about. Receiving this error usually
* means that your client library is outdated and should be upgraded.
*/
class UnknownApiErrorException extends ApiErrorException {}