Я использую это руководство для интеграции 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.