Мы готовимся к выпуску большого веб-приложения, которое разрабатывалось в прошлом году. Мы собираемся начать процесс интеграции ActiveMerchant для обработки периодических сборов за подписку на услугу.
Я ищу любые советы относительно наилучшей практики с учетом наших требований (перечисленных ниже) и любых дополнительных предупреждений об общих подводных камнях или конкретных проблемах, которые я должен уделить особое внимание. Платежный шлюз, который мы будем использовать, - PaymentExpress , так как это один из немногих поддерживаемых шлюзов, который имеет регулярный биллинг и не имеет никаких особых условий для компаний, работающих за пределами США. Бизнес этого приложения базируется за пределами Великобритании.
Пользователи приложения создают учетную запись с поддоменом, где они могут получить доступ и настроить приложение и свои данные. Ниже приведены некоторые требования / функции, которые могут повлиять на работу биллинга:
- Все пользователи получают 30-дневную пробную версию
- Существуют разные планы, в том числе бесплатный
- Планы с более высокой ценой имеют большие ограничения на количество данных (например, пользователей, проектов и т. Д.), Которые они могут иметь в своей учетной записи
- Расчетный период будет ежемесячным, начиная с пробной версии
- Будут скидки / коды купонов для получения процента от обычной цены в течение года на планы и т. Д.
- Цены на планы будут меняться по мере добавления функций
Конкретными препятствиями, которые я могу предвидеть, будут следующие вещи:
- Как обрабатывать понижение рейтинга, когда они нарушают ограничения плана для планов более низкого уровня.
- Поведение, когда срок действия кредитных карт истекает или платежи не осуществляются (возможно, только для чтения)
- При изменении ценового плана мы хотим учитывать предыдущие цены для существующих пользователей в течение определенного периода времени (например, 6 месяцев), а затем начать взимать более высокие тарифы. Если плановая цена снижается, она вступает в силу немедленно.
Другим полезным советом может быть что-нибудь относительно потока приложения. Как должны быть представлены формы для выставления счетов пользователю? Когда требуется информация о кредитной карте? Как счета должны быть отправлены, сохранены и доступны?
Я должен сообщить, что мы планируем основывать большую часть кода на SaaSy . SaaSy предназначен для использования в качестве отдельного приложения Rails, которое обрабатывает все аспекты регистрации и управления учетными записями. Однако, это не работает для нас, так как мы никогда не планировали этого с самого начала, и было бы утомительно адаптировать наше приложение для такой работы. Следовательно, мы будем извлекать код и идеи из SaaSy и объединять их в наше приложение, что значительно менее утомительно.