php - 如何在 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());
}
}
}
解决方案
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());
}
推荐阅读
- typescript - 打字稿:如何使用同一界面中的地图从另一种类型派生
- javascript - 在 React 中映射嵌套的 JSON 对象
- javascript - 如何在 React Native / Expo 中请求权限?
- asp.net-core - 在 SignalR 中访问集线器外部的 Context.ConnectionID
- excel - 从 Excel 中的 4 列构建单列列表
- javascript - 如何在JS中获取此文件层次结构的相对文件路径
- html - 使用 span 垂直创建三个点并将它们对齐
- android - 保存活动的整个实例
- javascript - Erro 429 从 Expedia 抓取数据
- python - 如何根据其他字段值 Flux 过滤字段