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





RailsKits имеет Программное обеспечение как комплект услуг, который должен делать то, что вам нужно. Он имеет встроенную поддержку бесплатных пробных версий, обновления, перехода на более раннюю версию, ограничения тарифных планов и т. д., А также поддерживает PaymentExpress (и некоторые другие).
Я немного исследовал его для проекта, над которым работаю, но я еще не купил его, поэтому я не могу за него поручиться. Тем не менее, я видел несколько сообщений в блогах, в которых хвалили этот комплект.
Хотя RailsKit является относительно недорогим по сравнению с тем, сколько вам потребовалось бы реализовать все его функции самостоятельно, существует пара версий с открытым исходным кодом, которые стремятся достичь того же самого. Тот, который я запомнил, называется Freemium.
Обновлено: Я забыл упомянуть, что Райан Бейтс сказал в своем последний Railscast, что его следующий или два эпизода будут иметь дело с повторяющимся выставлением счетов, так что следите за этим. Обычно он снимает одну серию в неделю, а пять, которые он снял с 22 декабря, охватывают обработку различных видов платежей.
Кстати, многие люди используют SaaS Rails Kit со своим уже существующим приложением ... они просто копируют модели, контроллеры и т. д. Таким образом, вам не нужно начинать с нуля, чтобы использовать его.
У Peepcode есть PDF-файл для продажи (70 страниц), в котором подробно описаны различные аспекты обработки платежей и отраслевые практики для этого. Возможно, стоит проверить:
http://peepcode.com/products/activemerchant-pdf
Я посмотрел книгу, я искал немного больше, чем это
Книга дает отличный обзор процесса и включает множество фрагментов кода. Автору обложек также пришлось создавать юнит-тесты. Также в комплект входит пример приложения: moneyhats. Отличное содержание и соотношение цены и качества по очень доступной цене.
Я хотел добавить одну вещь: имейте в виду, что вам не нужно использовать функцию регулярного выставления счетов, встроенную в шлюз. В общем, эти системы унаследованы, и с ними очень сложно работать, мы испорчены в мире рельсов.
Вы получаете гораздо большую гибкость, просто используя их для одной цели (для выставления счетов по кредитной карте и, возможно, также для хранения кредитных карт для соответствия требованиям PCI). Затем сверните свой собственный повторяющийся биллинг в своем приложении rails с помощью задания cron, поля даты, когда они оплачиваются, и суммы, которую платит каждый человек (в случае, если они использовали купон) и т. д.
Один небольшой пример: иногда люди отменяют ежемесячную подписку в середине месяца. Они хотят убедиться, что не забудут отменить до следующего платежа. Большинство повторяющихся выставлений счетов через шлюз, которые я видел, немедленно прекращают действие учетной записи (или отправляют вам сообщение с указанием этого). На самом деле, пользователь заплатил до конца месяца, и ему нужно предоставить еще 2 недели доступа. Вы можете сделать это, если вы свернули свой собственный периодический биллинг в рельсах, но не если вы используете шлюз повторяющегося биллинга. Просто небольшой пример.
Я также занимаюсь настройкой веб-сайта на основе подписки, и это наши текущие требования. Они могут помочь вам в отношении передового опыта:
Мы также рассмотрели http://chargify.com/, который, похоже, может сэкономить много времени на кодирование.
Да, я слежу за скринкастами от Райана, и я также видел RailsKit. Проблема в том, что RailsKit разработан как отправная точка для приложения, а не как дополнение к существующему. Мой вопрос не столько технический, сколько передовой опыт архитектуры / дизайна. Спасибо хоть!