Обработка исключений Stripe API с помощью CakePHP - PullRequest
0 голосов
/ 10 октября 2019

Вот пример Stripe о том, как обрабатывать исключения API :

try {
  // Use Stripe's library to make requests...
} catch(\Stripe\Exception\CardException $e) {
  // Since it's a decline, \Stripe\Exception\CardException will be caught
  echo 'Status is:' . $e->getHttpStatus() . '\n';
  echo 'Type is:' . $e->getError()->type . '\n';
  echo 'Code is:' . $e->getError()->code . '\n';
  // param is '' in this case
  echo 'Param is:' . $e->getError()->param . '\n';
  echo 'Message is:' . $e->getError()->message . '\n';
} catch (\Stripe\Exception\RateLimitException $e) {
  // Too many requests made to the API too quickly
} catch (\Stripe\Exception\InvalidRequestException $e) {
  // Invalid parameters were supplied to Stripe's API
} catch (\Stripe\Exception\AuthenticationException $e) {
  // Authentication with Stripe's API failed
  // (maybe you changed API keys recently)
} catch (\Stripe\Exception\ApiConnectionException $e) {
  // Network communication with Stripe failed
} catch (\Stripe\Exception\ApiErrorException $e) {
  // Display a very generic error to the user, and maybe send
  // yourself an email
} catch (Exception $e) {
  // Something else happened, completely unrelated to Stripe
}

Я делаю несколько запросов и хотел бы повторно использовать этот фрагмент, например , например так.

Прежде чем я начну создавать функцию обтекания, я хочу посмотреть, есть ли лучший способ CakePHP.

Я прочитал Создание собственного обработчика ошибок , но неясно, как заставить мой src/Error/StripeError.php ловить и обрабатывать именно эти \Stripe\Exception\* экземпляры.

По сути,Я пытаюсь создать отдельный класс catch и отображать все ошибки Stripe на всем сайте. Как вы думаете, это возможно / разумно?

...