首页 > 解决方案 > 如何在 Cartalyst/Stripe Laravel 中捕获异常并重定向到我的 on 消息?我想在 catch 块中捕获错误

问题描述

如何在 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());
        }         
    }
}

标签: phplaravelstripe-paymentspayment-methodcartalyst

解决方案


throw new CardErrorException()您应该以in try 块的形式创建一个对象。

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

推荐阅读