Как обрабатывать различные варианты плана с Stripe?

Я использую Laravel и Stripe. У меня в приложении 5 разных планов подписки. Каждый план имеет свой набор параметров, например

Базовый план
— максимальное количество кампаний — 20
— макс. писем — 100

Pro Plan
— максимальное количество кампаний — 40
— макс. писем — 200

и т.п.

Как мне представить эти параметры в моей БД?

Я использую кассу Laravel, она прекрасно обрабатывает таблицу подписок, где хранится имя подписки, идентификатор плана полосы и т. Д.

Но я хочу, чтобы позже, когда пользователь собирается создать кампанию, проверил, может ли он это сделать, т. Е. Он не достиг предела кампаний в соответствии со своим планом.

Похоже, мне нужен другой стол, как plan_options где бы я хранил все это Меня беспокоит, как мне подключить его к этой таблице подписок? вручную? нужно ли сразу после подписки пользователя найти имя подписки, которое он выбрал, найти в таблице plan_options и подключить его с помощью идентификатора? это правильный способ сделать это?

1

Решение

Вы можете сохранить plan_options в метаданные плана подписки в Stripe. Таким образом, все остается на одном месте, и синхронизация не требуется.

введите описание изображения здесь

Вы можете получить доступ к метаданным с помощью API следующим образом.

Пример запроса:

\Stripe\Stripe::setApiKey("sk_test_ascfadfaeadsfadsfasdfasdfV");

\Stripe\Plan::retrieve("pro");

Пример ответа:

Stripe\Plan JSON: {
"id": "pro",
"object": "plan",
"amount": 1000,
"created": 1453123864,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
"campaigns_limit": "40",
"emails_limit": "200"},
"name": "Pro Plan",
"statement_descriptor": null,
"trial_period_days": 30
}

При наличии многих планов подписки централизованная информация устранит многие сложности.

PS: Ответ содержит строки, а не числа / целые числа в JSON.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]