| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- <?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()
- {
- $statusStr = (null === $this->getHttpStatus()) ? '' : "(Status {$this->getHttpStatus()}) ";
- $idStr = (null === $this->getRequestId()) ? '' : "(Request {$this->getRequestId()}) ";
- return "{$statusStr}{$idStr}{$this->getMessage()}";
- }
- protected function constructErrorObject()
- {
- if (null === $this->jsonBody || !\array_key_exists('error', $this->jsonBody)) {
- return null;
- }
- return \Stripe\ErrorObject::constructFrom($this->jsonBody['error']);
- }
- }
|