У меня возникли проблемы с попыткой внедрения Cashier (Stripe) в мое приложение Laravel.
Я пытаюсь создать новую подписку для уже существующего клиента (компании). Но когда я это делаю, я получаю следующую ошибку:
You cannot set the quantity for metered plans.
Вот что я пытался сделать:
$company = Company::find(1);
$company->newSubscription('prod_XXX', 'plan_XXX')->create();
В документации laravel я нашел это
$user->newSubscription('main', 'premium')->create($paymentMethod);
но, насколько я понимаю, если клиент уже существует, мне не нужно передавать метод paymentMethod в методе create (), поскольку он связывается с stripe_id в базе данных.
В случае, если требовался способ оплаты, я тоже пытался так:
$company = Company::find(1);
$paymentMethod = $company->defaultPaymentMethod()->id;
$company->newSubscription('prod_XXX', 'plan_XXX')->create($paymentMethod);
Но я получаю то же сообщение об ошибке.
На панели инструментов Stripe я нашел это тело запроса в журнале ошибок:
{
"expand": {
"0": "latest_invoice.payment_intent"
},
"plan": "plan_XXX",
"quantity": "1",
"off_session": "true"
}
Таким образом, newSubscription (), по-видимому, передает значение по умолчанию 1.
Итак, вернемся к моему вопросу: Как создать новую дозированную подписку на существующий клиент без передачи количества?