我在 Laravel 中使用自定义页面 Ajax 进行 Laravel Stripe 支付集成时遇到错误

问题描述 投票:0回答:1

“必须指定

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

我想找到这个错误的解决方案,如果你知道请告诉我为什么这个错误一次又一次发生

laravel stripe-payments laravel-8 laravel-blade laravel-10
1个回答
0
投票

您可以在收费方式中添加

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());
}
© www.soinside.com 2019 - 2024. All rights reserved.