Я разрабатываю инфраструктуру подписки для своего приложения. Подписка основана на «кредитах». Каждый месяц любой подписанный пользователь получит х количество кредитов в зависимости от их плана. Они получат кредиты после оплаты счета за этот месяц.
Это мои таблицы:
account(id,name, credits, plan)
plan(id,name,credits per month, cost per month)
invoices(name, account id, paid/unpaid, credits given, plan at the time)
Хорошо, с этой настройкой я буду запускать ежедневное задание cron для рассылки счетов за месяц. Когда люди приходят на веб-сайт, чтобы оплатить счет, после оплаты статус счета устанавливается как оплаченный, а затем кредиты добавляются в их учетную запись и обновляются в таблице счетов.
Я подозреваю, что для месячного плана это будет работать нормально, однако я хочу дать им возможность платить за 6 месяцев или год. В таком случае, что вы порекомендуете мне сделать, чтобы позволить им платить авансом, но кредитовать их каждый месяц?
Есть ли у кого-нибудь подходящие примеры или учебные пособия по аналогичным службам подписки - что поможет мне найти лучший способ его создания?
Я бы также принял предложения по улучшению или предупреждению о распространенных ошибках в моем методе.
Спасибо
Jason
Примечания: настройка лампы.