Laravel 收银员 10 - 尝试显示条纹元素时出错

Laravel Cashier 10 - Errors trying to show a Stripe element

我正在使用本教程通过 Cashier 将 Stripe 集成到我的 Laravel 网站中: https://appdividend.com/2018/12/05/laravel-stripe-payment-gateway-integration-tutorial-with-example/

本教程是为 Cashier 9 编写的,因此它不适用于 Cashier 10。但是,它确实可以在这个 SO 答案中进行调整:

除此之外,它仅适用于现有的 Stripe 客户。当我注册一个全新的用户并尝试查看计划时,出现此错误:User is not a Stripe customer. See the createAsStripeCustomer method.

所以,我尝试这样做:

public function show(Plan $plan, Request $request)
    {
        if($request->user()->stripe_id === null)
        {
            $request->user()->createAsStripeCustomer();
        }
        $paymentMethods = $request->user()->paymentMethods();

        $intent = $request->user()->createSetupIntent();
        return view('plans.show', compact('plan', 'intent'));
    }

产生此错误:No API key provided. (HINT: set your API key using "Stripe::setApiKey(<API-KEY>)". You can generate API keys from the Stripe web interface. See https://stripe.com/api for details, or email support@stripe.com if you have any questions.

这个 SO 答案解决了这个问题:

但是这个解决方案只适用于Cashier 9,因为Billable变了,所以不清楚如何设置API键。

如果新客户还不是 Stripe 客户,我在这里做错了什么?

编辑 - 我正在使用默认的收银台配置,我已经确认它指向 .env 变量。

展示方法如下:

    public function show(Plan $plan, Request $request)
    {
        $paymentMethods = $request->user()->paymentMethods();

        $intent = $request->user()->createSetupIntent();
        return view('plans.show', compact('plan', 'intent'));
    }

现在是错误:User is not a Stripe customer. See the createAsStripeCustomer method.

收银员 10 对配置进行了一些更改,包括设置 cashier.php 配置文件。 upgrade guide details how, this pull request commit 显示文件。

调试这个的几件事:

  • 确保您已正确设置收银台 10 的配置。
  • 确保配置键 cashier.key 可用(例如 ddd(config('cashier.key'));
  • 仔细检查您的 .env 变量是否为 stripe 的 API 键
  • 正确设置