Php 如何在Cartalyst/Stripe Laravel中捕获异常并重定向到我的on消息?我想在catch块中捕获错误
如何在Cartalyst/Stripe Laravel中捕获异常并重定向到我的on消息。我试图在下面提到的代码中添加catch块,我想在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
<?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());
}
}
}