Laravel Cashier 10 - Ошибки при попытке показать элемент Stripe - PullRequest
0 голосов
/ 01 декабря 2019

Я использую это руководство для интеграции Stripe в мой сайт Laravel с помощью кассира: https://appdividend.com/2018/12/05/laravel-stripe-payment-gateway-integration-tutorial-with-example/

Это руководство было написано для Cashier 9, поэтому оно не работает из коробки с Cashier 10. Однакоон действительно вносит коррективы в этот ответ SO: https://stackoverflow.com/a/57812759/2002457

Кроме того, он работает только для существующих клиентов 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 решает эту проблему: https://stackoverflow.com/a/34508056/2002457

Но решение работает только в Кассе 9, потому что Billable изменился, поэтому не ясно, как установить ключ API.

Что я делаю не так, чтобы создать нового клиента, если он уже не является клиентом Stripe?

РЕДАКТИРОВАТЬ - я использую конфигурацию кассира по умолчанию, и я подтвердил, что этоуказывая на .env vars.

  • Я вставил dd(config('cashier.key'));, чтобы убедиться, что конфиг работает

  • Я удалил старые сервисы. php config parts

  • Параметры 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.

1 Ответ

1 голос
/ 01 декабря 2019

Касса 10 внесла некоторые изменения в конфигурацию, включая настройку файла конфигурации cashier.php. руководство по обновлению подробно описывает, как этот запрос на получение запроса показывает файл.

Несколько вещей для отладки:

  • убедитесь, что выправильно настроил конфигурацию для кассира 10.
  • убедитесь, что доступен ключ конфигурации cashier.key (например, ddd(config('cashier.key'));
  • , дважды проверьте, правильно ли настроены ваши .env varAPI-ключ полосы
...