簡體   English   中英

如何在 Cartalyst/Stripe Laravel 中捕獲異常並重定向到我的消息? 我想在 catch 塊中捕獲錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM