Php 如何在Cartalyst/Stripe Laravel中捕获异常并重定向到我的on消息?我想在catch块中捕获错误

Php 如何在Cartalyst/Stripe Laravel中捕获异常并重定向到我的on消息?我想在catch块中捕获错误,php,laravel,stripe-payments,payment-method,cartalyst,Php,Laravel,Stripe Payments,Payment Method,Cartalyst,如何在Cartalyst/Stripe Laravel中捕获异常并重定向到我的on消息。我试图在下面提到的代码中添加catch块,我想在catch块中捕获错误 <?php namespace App\Http\Controllers; use Cartalyst\Stripe\Laravel\Facades\Stripe; use Illuminate\Http\Request; use Illuminate\Support\Facades\Redirect; clas

如何在Cartalyst/Stripe Laravel中捕获异常并重定向到我的on消息。我试图在下面提到的代码中添加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块中的
抛出新CardErrorException()
的形式创建一个对象

试试看{
$charge=Stripe::charges()->创建([
“金额”=>$request->total,
“货币”=>“加元”,
'source'=>$request->stripeToken,
'说明'=>'说明在这里',
“接收电子邮件”=>$request->email,
“元数据”=>[
“国家”=>$request->country,
“地址”=>$request->address,
“邮政编码”=>$request->postalcode,
'data1'=>'metadata 1',
'data2'=>'metadata 2',
'data3'=>'metadata 3',
],
]);
if({charge\u error\u condition}){
抛出新的CardErrorException();
}
}
捕获(CardErrorException$e){
//将信息保存到数据库以获取失败的
return back()->withErrors('Error!'.$e->getMessage());
}  


//通过在中添加\Cartalyst\Stripe\Exception\来解决
//catch(\Cartalyst\Stripe\Exception\carderexception$e)
   

// 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());
        

    } 

        
    

    }
    }