![](/img/trans.png)
[英]How can I catch MySQL/MariaDB Exception in my laravel 9 project?
[英]How can I catch exception and redirect to my on message in Cartalyst/Stripe Laravel? I want to catch errors in catch block
如何在 Cartalyst/Stripe Laravel 中捕獲異常並重定向到我的消息。 我試圖在下面提到的代碼中添加 catch 塊我想在 catch 塊中捕獲錯誤
<?php
namespace App\Http\Controllers;
use Cartalyst\Stripe\Laravel\Facades\Stripe;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;
class BuyNowController extends Controller
{
public function buyNow(Request $request)
{
try {
$charge = Stripe::charges()->create([
'amount' => $request->total,
'currency' => 'CAD',
'source' => $request->stripeToken,
'description' => 'Description goes here',
'receipt_email' => $request->email,
'metadata' => [
'country'=>$request->country,
'address'=>$request->address,
'postal code'=>$request->postalcode,
'data1' => 'metadata 1',
'data2' => 'metadata 2',
'data3' => 'metadata 3',
],
]);
}
catch (CardErrorException $e) {
// save info to database for failed
return back()->withErrors('Error! ' . $e->getMessage());
}
}
}
您應該在 try 塊中以throw new CardErrorException()
的形式創建一個對象。
try {
$charge = Stripe::charges()->create([
'amount' => $request->total,
'currency' => 'CAD',
'source' => $request->stripeToken,
'description' => 'Description goes here',
'receipt_email' => $request->email,
'metadata' => [
'country'=>$request->country,
'address'=>$request->address,
'postal code'=>$request->postalcode,
'data1' => 'metadata 1',
'data2' => 'metadata 2',
'data3' => 'metadata 3',
],
]);
if ({charge_error_condition}) {
throw new CardErrorException();
}
}
catch (CardErrorException $e) {
// save info to database for failed
return back()->withErrors('Error! ' . $e->getMessage());
}
// solve by adding \Cartalyst\Stripe\Exception\ in
// catch(\Cartalyst\Stripe\Exception\CardErrorException $e)
<?php
namespace App\Http\Controllers;
use Cartalyst\Stripe\Laravel\Facades\Stripe;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;
class BuyNowController extends Controller
{
public function buyNow(Request $request)
{
try {
$charge = Stripe::charges()->create([
'amount' => $request->total,
'currency' => 'CAD',
'source' => $request->stripeToken,
'description' => 'Description goes here',
'receipt_email' => $request->email,
'metadata' => [
'country'=>$request->country,
'address'=>$request->address,
'postal code'=>$request->postalcode,
'data1' => 'metadata 1',
'data2' => 'metadata 2',
'data3' => 'metadata 3',
],
]);
}
// solve by addind \Cartalyst\Stripe\Exception\ before ecxeption name
catch (\Cartalyst\Stripe\Exception\CardErrorException $e) {
// save info to database for failed
return back()->withErrors('Error! ' . $e->getMessage());
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.