Я пытаюсь создать подписку с помощью Laravel Касса и полоса. Мой почтовый запрос, который подписывается на пользователя, успешно передается на серверную часть Stripe. Я знаю это, потому что я проверил журналы Stripe, и запросы имеют статусы 200.
Замечательно.
Несмотря на одобрение Stripes, Laravel фактически выдает исключение всякий раз, когда я отправляю форму подписки: Stripe\Exception\InvalidRequestException: No such plan: yearly_plan
.
yearly_plan
- это идентификатор, который я дал одному из моих планов подписки. что пользователь дает и получает Stripe API.
Идентификаторы, которые я дал для каждого из двух планов, верны. Я проверял несколько раз.
// subscribe.blade.php
<select class="form-control" name="plan" id="plans">
<option selected value="">Choose a plan</option>
@foreach($plans as $planId => $planName)
<option value="{{ $planId }}">{{ $planName }}</option>
@endforeach
</select>
// SubscribeController.php
public function storePaymentMethod()
{
$user = Auth::user();
// if user is logged in
if (!$user)
{
return redirect('login');
}
$plans = [
'plan_H1SbSi9r1YhXNG' => 'Monthly',
'yearly_plan' => 'Yearly'
];
return view('subscribe', [
'intent' => $user->createSetupIntent(),
'plans' => $plans
]);
}
public function subscribe(Request $request)
{
$user = Auth::user();
$paymentMethod = $request->paymentMethod;
$plan = $request->planId;
if (!$user->subscribed())
{
// 'create' method will automatically store customers payment method
$user->newSubscription('subscription', $request->plan)->create($paymentMethod);
}
redirect()
->route('confirmation')
->with('subscriptionSuccessMessage', 'You have successfully subscribed. See you around!');
}