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