“必须指定
return_url
,因为此付款意图配置为自动接受仪表板中启用的付款方式,其中一些付款方式可能需要完整页面重定向才能成功。如果您不想接受基于重定向的付款方式,在创建设置意向和付款意向时,将 automatic_payment_methods[enabled]
设置为 true
,将 automatic_payment_methods[allow_redirects]
设置为 never
。”
我在使用 api 自定义页面 ajax 在 laravel 中集成 stripe 支付网关时第一次遇到此错误
这是我的结帐控制器代码
$user = Auth::user();
$user->createOrGetStripeCustomer();
$intent = $user->createSetupIntent();
return view('website.checkout.index', compact('data', 'intent'));
我的订单控制器代码是
$user = Auth::user();
$user->createOrGetStripeCustomer();
$paymentMethod = $request->input('paymentMethod');
$user->updateDefaultPaymentMethod($paymentMethod);
try {
$response = $user->charge($request->input('grand_total') * 100, $paymentMethod, [
'currency' => 'USD',
'confirmation_method' => 'manual',
]);
if ($response->id) {
// Store the payment method in session so we can use it later.
}
} catch (\Exception $exception) {
return response()->json($exception->getMessage());
}
我想找到这个错误的解决方案,如果你知道请告诉我为什么这个错误一次又一次发生
您可以在收费方式中添加
return_url
来解决此问题。 return_url 应该是您网站上的 URL,您希望在付款验证后将用户重定向到该 URL。
try {
$response = $user->charge($request->input('grand_total') * 100, $paymentMethod, [
'currency' => 'USD',
'confirmation_method' => 'manual',
'return_url' => route('your.route.name'), // Add this line
]);
if ($response->id) {
// Store the payment method in session so we can use it later.
}
} catch (\Exception $exception) {
return response()->json($exception->getMessage());
}