Stripe Exception Is Not Working .giving Laravel Errors Instead Of Exception Errors
I am using stripe payment gateway in my project. I am trying to display exception errors when a user entered expired card number. but instead of showing me error of exception it shows me laravel error. Note: it is not working with any kind of exception not only expired card number.
I am using the exception provided by Stripe.
public function recharge(Request $request)
{
$this->validate($request, [
'amount' => 'required',
]);
$amount = $request->input('amount');
\Stripe\Stripe::setApiKey('key_here');
try {
$token = $_POST['stripeToken'];
$charge = \Stripe\Charge::create([
'amount' => $amount * 100,
'currency' => 'usd',
'description' => 'Example charge',
'source' => $token,
]);
$user = User::find(Auth::user()->id);
$user->deposit($amount);
Session::flash('success', 'Your Wallet is recharged!');
return back();
} catch (\Stripe\Error\Card $e) {
// Since it's a decline, \Stripe\Error\Card will be caught
$body = $e->getJsonBody();
$err = $body['error'];
print('Status is:' . $e->getHttpStatus() . "\n");
print('Type is:' . $err['type'] . "\n");
print('Code is:' . $err['code'] . "\n");
// param is '' in this case
print('Param is:' . $err['param'] . "\n");
print('Message is:' . $err['message'] . "\n");
} catch (\Stripe\Error\InvalidRequest $e) {
return "error";
} catch (\Stripe\Error\Authentication $e) {
return "error";
} catch (\Stripe\Error\ApiConnection $e) {
// Network communication with Stripe failed
return "error";
} catch (\Stripe\Error\Base $e) {
return "error";
} catch (Exception $e) {
return "error";
}
}
I want to display the error defined by me in the catch block.
Answer
You are not catching the Stripe\Exception\CardException
exception. You are probably not actually catching Exception
either, unless you have aliased Exception
at the top of your file.
Add use Exception;
before the class declaration at the top or adjust Exception
in the catch to \Exception
.
Looks like the newer version of stripe-php
library throws Exceptions from Stripe\Exception
and no longer has a namespace Stripe\Error
FYI.
Related Questions
- → "failed to open stream" error when executing "migrate:make"
- → October CMS Plugin Routes.php not registering
- → OctoberCMS Migrate Table
- → OctoberCMS Rain User plugin not working or redirecting
- → October CMS Custom Mail Layout
- → October CMS - How to correctly route
- → October CMS - Conditionally Load a Different Page
- → Make a Laravel collection into angular array (octobercms)
- → In OctoberCMS how do you find the hint path?
- → How to register middlewares in OctoberCMS plugin?
- → Validating fileupload(image Dimensions) in Backend Octobercms
- → OctoberCMS Fileupload completely destroys my backend
- → How do I call the value from another backed page form and use it on a component in OctoberCms