Итак, передо мной была поставлена задача реорганизовать базу данных для одного из наших существующих приложений (чтобы нормализовать и реструктурировать некоторые из более гигантских таблиц), и я изо всех сил пытаюсь придумать надежный дизайн для обработки платежей нашему сервису.
Справочная информация
Наш сервис предлагает различные планы (личные, семейные, бизнес и т. Д.), Которые поставляются с ежемесячной и годовой подпиской.
Мы используем Stripe в качестве нашего платежного шлюза для личных и малых бизнес-пользователей, но также предлагаем возможность оплаты по счету для наших крупных клиентов. То, что я чувствую, заключается в том, в чем заключается большая сложность, пытаясь объединить их.
Для каждой подписки мы генерируем лицензионный ключ, предоставляемый каждому Пользователю, присоединенному к определенной учетной записи (для которой была приобретена подписка). Поэтому для каждой подписки я прилагаю к ней лицензионный ключ.
Конечная цель
В идеале я хотел бы иметь возможность отслеживать все платежи и подписки из обеих платежных воронок (Stripe & Manual Invoices) и управлять повторяющимися платежами (возобновление подписок, отмена просроченных подписок, изменение планов подписки, пробные версии, скидки и т. Д.).
Что у меня до сих пор
Моему дизайну определенно предстоит пройти долгий путь, поскольку он слишком сложен (возможно, больше, чем нужно).
Но идея всего этого состояла в том, чтобы отследить все сделанные платежи (как Stripe & Invoice), а затем связать эти платежи с подпиской (и лицензией).
Любая помощь будет оценена по этому вопросу! :)