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