Нет такого плана: ежемесячно; существует имя с названием ежемесячно, но его идентификатор является основным.
Получение этой проблемы в тесте Stripe. Все работало в тесте, но когда я создал новый план в Stripe и удалил исходный, я теперь получаю следующую ошибку:
No such plan: monthly; one exists with a name of monthly, but its ID is primary.
контроллер
$user->newSubscription('primary', 'monthly')->create($token, [ ]);
Детали плана
ID: primary
Name: monthly
Price: $19.99 USD/month
Trial period: No trial
Конфигурация PHP Artisan: ясно, не помогает. Я использую Laravel 5.2 и Cashier 6.0.
файл.env
STRIPE_KEY=pk_test_...
STRIPE_SECRET=sk_test_....
конфиг /services.php
'stripe' => [
'model' => App\User::class,
'key' => env('STRIPE_KEY'),
'secret' => env('STRIPE_SECRET'),
],
4 ответа
Используйте это вместо:
$user->newSubscription('primary', 'primary')->create($token, [ ]);
Из документации:
Первым аргументом, передаваемым методу newSubscription, должно быть имя подписки. Второй аргумент - это конкретный план Stripe, на который подписывается пользователь. Это значение должно соответствовать идентификатору плана в Stripe.
Таким образом, второй аргумент должен быть равен значению идентификатора из моего плана Stripe! В этом случае это значение primary
не monthly
,
Важно различать идентификатор продукта и идентификатор плана. Возможно, полоса изменилась, так как было написано много уроков. Мне потребовалось несколько часов поиска, чтобы узнать это. Поскольку я новичок, мне было легко найти Product и Product Id, но найти Plan Id было сложнее. Фактически мне пришлось "экспортировать планы" в CSV со страницы продукта, чтобы даже получить идентификатор для идентификатора плана.
Надеюсь, это поможет кому-то, кто был потерян, как я
Основная проблема заключается в том, что вы передаете имя плана вместо идентификатора плана во втором параметре newSubscription(). это должно быть так
$user->newSubscription('основная', 'plan_GNxxxxxxx')-> создать ($request->stripeToken,[ ]);
$user->newSubscription('XXXX', 'price_XXXXXXX')->create($request->stripeToken);
Steps:
- Create a Subscription for the stripe account (Test Mode).
- Under subscription need to create a product with quantity and price and recurring option.
- Once product is created you can see a product inside Product menu, click on it and find API ID.
- SO finally inside function newSubscription(), first parameter would be the subscription name that you written while creating it and second parameter would be the APP ID under product.