Периодическое выставление счетов с Rails и ActiveMerchant: лучшие практики, подводные камни, ошибки? - PullRequest
32 голосов
/ 23 января 2009

Мы готовимся к выпуску большого веб-приложения, которое разрабатывалось в прошлом году. Мы собираемся начать процесс интеграции ActiveMerchant для обработки периодических сборов за подписку на услугу.

Я ищу любые советы относительно наилучшей практики с учетом наших требований (перечисленных ниже) и любых дополнительных предупреждений об общих подводных камнях или конкретных проблемах, которые я должен уделить особое внимание. Платежный шлюз, который мы будем использовать, - PaymentExpress , так как это один из немногих поддерживаемых шлюзов, который имеет регулярный биллинг и не имеет никаких особых условий для компаний, работающих за пределами США. Бизнес этого приложения базируется за пределами Великобритании.

Пользователи приложения создают учетную запись с поддоменом, где они могут получить доступ и настроить приложение и свои данные. Ниже приведены некоторые требования / функции, которые могут повлиять на работу биллинга:

  • Все пользователи получают 30-дневную пробную версию
  • Существуют разные планы, в том числе бесплатный
  • Планы с более высокой ценой имеют большие ограничения на количество данных (например, пользователей, проектов и т. Д.), Которые они могут иметь в своей учетной записи
  • Расчетный период будет ежемесячным, начиная с пробной версии
  • Будут скидки / коды купонов для получения процента от обычной цены в течение года на планы и т. Д.
  • Цены на планы будут меняться по мере добавления функций

Конкретными препятствиями, которые я могу предвидеть, будут следующие вещи:

  • Как обрабатывать понижение рейтинга, когда они нарушают ограничения плана для планов более низкого уровня.
  • Поведение, когда срок действия кредитных карт истекает или платежи не осуществляются (возможно, только для чтения)
  • При изменении ценового плана мы хотим учитывать предыдущие цены для существующих пользователей в течение определенного периода времени (например, 6 месяцев), а затем начать взимать более высокие тарифы. Если плановая цена снижается, она вступает в силу немедленно.

Другим полезным советом может быть что-нибудь относительно потока приложения. Как должны быть представлены формы для выставления счетов пользователю? Когда требуется информация о кредитной карте? Как счета должны быть отправлены, сохранены и доступны?

Я должен сообщить, что мы планируем основывать большую часть кода на SaaSy . SaaSy предназначен для использования в качестве отдельного приложения Rails, которое обрабатывает все аспекты регистрации и управления учетными записями. Однако, это не работает для нас, так как мы никогда не планировали этого с самого начала, и было бы утомительно адаптировать наше приложение для такой работы. Следовательно, мы будем извлекать код и идеи из SaaSy и объединять их в наше приложение, что значительно менее утомительно.

Ответы [ 4 ]

8 голосов
/ 27 мая 2009

Я хотел бы добавить одну вещь: имейте в виду, что вам не нужно использовать функцию периодического выставления счетов, встроенную в шлюз. В общем, эти системы являются устаревшими и с ними очень трудно иметь дело, мы попадаем в мир рельсов.

Вы получаете гораздо больше гибкости, просто используя их для одной цели (для выставления счета по кредитной карте и, возможно, также для хранения кредитных карт для соответствия PCI). Затем сверните свой собственный регулярный биллинг в приложении rails с заданием cron, полем даты, когда они будут оплачены, и суммой, которую платит каждый человек (в случае, если он использовал купон) и т. Д.

Один небольшой пример: иногда люди отменяют ежемесячную подписку в середине месяца. Они хотят убедиться, что они не забыли отменить до следующего платежа. Большинство повторяющихся платежей шлюзов, которые я видел, мгновенно закрывают аккаунт (или отправляют вам сообщение с указанием этого). На самом деле, пользователь заплатил до конца месяца и ему нужно предоставить еще 2 недели доступа. Вы можете сделать это, если вы свернули свой собственный повторяющийся биллинг в рельсах, но не если вы используете шлюз повторяющегося биллинга. Просто маленький пример.

5 голосов
/ 23 января 2009

RailsKits имеет программное обеспечение в качестве сервисного комплекта , которое должно делать то, что вам нужно. Он имеет встроенную поддержку для бесплатных пробных версий, обновления, понижения, ограничений по планам и т. Д., А также поддерживает PaymentExpress (и некоторые другие).

Я немного исследовал его для проекта, который я делаю, но я еще не купил его, поэтому я не могу поручиться за него. Тем не менее, я видел несколько постов в блогах, восхваляющих этот комплект.

Несмотря на то, что RailsKit сравнительно недорогой по сравнению с тем, сколько вам стоило бы реализовать все его функции самостоятельно, существует пара версий с открытым исходным кодом, которые стремятся выполнить то же самое. Тот, который я помню на макушке головы, называется Freemium .

РЕДАКТИРОВАТЬ: я забыл упомянуть, что Райан Бейтс сказал в своем самом последнем Railscast , что его следующий эпизод или два будут посвящены повторяющимся биллингам, так что следите за этим. Он обычно делает один эпизод в неделю, и пять, которые он сделал с 22 декабря, покрывают обработку платежей различных типов.

4 голосов
/ 16 ноября 2009

Я также занимаюсь настройкой подписного веб-сайта, и это наши текущие требования. Они могут помочь вам в отношении наилучшей практики:

  • Пользователи смогут выбрать один из планы подписки.
  • Пользователи должны будут ввести свои данные кредитной карты, чтобы зарегистрироваться на их выбранный план.
  • Все основные кредитные и дебетовые карты должны быть принятым, включая маэстро и American Express.
  • Каждый план будет иметь 30-дневный бесплатный пробная версия, поэтому пользовательские кредитные карты должны взимается только после 30 дней срок истекает. Тем не менее, срок действия кредитных карт должны быть проверены на время регистрации.
  • Пользователи будут отправлены по электронной почте через несколько дней до того, как их кредитная карта будет снята уведомить их, что они будут взимается в ближайшее время, если они не отменят свои учетная запись. Если они отменяют свой аккаунт в течение 30-дневного бесплатного пробного периода, их Кредитная карта не должна быть снята.
  • После любого бесплатного пробного периода пользователи будет взиматься заранее за их использование системы - т.е. они будут предоплата.
  • С пользователей будет взиматься плата автоматически каждый месяц по выбранному плану. Каждый месяц пользователям будет отправляться напишите за несколько дней, чтобы уведомить им, что они будут платить. однажды оплата произведена, пользователи будут по электронной почте счет, показывающий, что их Платеж получен.
  • Пользователи смогут обновить или понизить их учетные записи в любое время. Когда пользователи обновляют / понижают рейтинг, их следующая плата за подписку будет на новый курс. Пользователи смогут только снизить рейтинг своих аккаунтов до плана которые могут обрабатывать их данные. За Например, если у них в настоящее время есть 10 активные проекты, которые они не могут понизить к основному плану, потому что основной План позволяет только 5 проектов. Oни придется удалить или заархивировать 5 проекты, прежде чем они могут понижение до базового.
  • Пользователи смогут войти в свои учетной записи и изменить или обновить их данные кредитной карты.
  • Пользователи смогут отменить свои аккаунт в любое время. Здесь не будет дополнительные расходы на подписку после Пользователь удалил свою учетную запись. Тем не менее, пользователи не будут возвращены на часть месяца у них есть уже оплачен.
  • Все части платежной системы должны быть на 100% совместимым с PCI DSS; в том числе любые сторонние системы.
  • Платежная система должна поддерживать автоматическое уведомление и повтор неудачные продления подписки.
  • Платежная система должна поддерживать купоны на скидку с истечением срока годности.
  • Данные кредитной карты не должны быть обработано или хранится на наших серверах
  • они всегда должны обрабатываться / храниться нашей третьей стороной партнер по обработке платежей. Мы не хочу ответственности за обеспечение эти детали и соблюдение правовые нормы и правила.
  • Пользователи смогут войти в свои счета и увидеть полный биллинг история, включая даты и суммы оплачено. Мы также должны быть возможность войти в систему, чтобы увидеть планы оплаты клиента и оплата история. Это будет важно для обслуживание клиентов.

Мы также рассматривали http://chargify.com/, который, похоже, мог бы сэкономить много времени на кодировании.

4 голосов
/ 06 февраля 2009

Peepcode имеет PDF для продажи (70 страниц), в котором подробно описываются различные аспекты обработки платежей и отраслевые практики для этого. Возможно, стоит проверить:

http://peepcode.com/products/activemerchant-pdf

...