使用Rails和ActiveMerchant重复计费:最佳做法,陷阱,陷阱?

时间:2009-01-23 05:08:07

标签: ruby-on-rails ruby web-applications payment recurring-billing

我们正准备发布过去一年一直在开发的大型Web应用程序。我们即将开始整合ActiveMerchant以处理服务的定期订阅费用。

我正在寻找有关考虑到我们的要求(下面列出的)的最佳实践的任何建议,以及针对我应该特别考虑的常见陷阱或特定问题的任何额外提示。我们将使用的支付网关是PaymentExpress,因为它是支持定期计费的少数支持网关之一,对于在美国境外运营的公司没有任何特殊条件。该应用程序背后的业务基于英国。

应用程序的用户创建一个具有子域的帐户,他们可以访问和自定义应用程序及其数据。以下是可能影响结算方式的一些要求/功能:

  • 所有用户都可以获得30天的试用期
  • 有不同的计划,包括免费的
  • 价格较高的计划对其帐户中可以拥有的数据量(例如用户,项目等)有更大的限制
  • 结算期限为每月一次,试用后开始
  • 将有折扣/优惠券代码,以便在计划等方面获得一年正常价格的百分比。
  • 计划定价会随着功能的添加而改变

我可以预见的具体障碍将包括以下内容:

  • 如果在违反较低级别计划的计划限制时如何处理降级。
  • 信用卡过期或付款未通过时的行为(可能是强制执行的只读模式)
  • 当计划定价发生变化时,我们希望在一段时间内(例如6个月)兑现现有用户的先前价格,然后开始收取更高的费率。如果计划价格下降,它将立即生效。

其他有用的建议是关于应用程序流程的任何建议。如何向用户呈现结算表单?何时需要信用卡信息?如何发送,存储和访问发票?

我应该透露,我们计划将大量代码库基于SaaSy。 SaaSy旨在用作单独的Rails应用程序,处理所有注册和帐户管理方面的事情。但是,这对我们不起作用,因为我们从一开始就没有计划过这个,而且让我们的应用程序适应这样的工作将是一个繁琐的过程。因此,我们将从SaaSy中提取代码和想法并将它们合并到我们的应用程序中,这是一项相当不繁琐的任务。

4 个答案:

答案 0 :(得分:8)

我想添加一件事:请记住,您不需要使用网关内置的定期结算功能。一般来说,这些系统是遗留的并且很难处理,我们在轨道世界中被宠坏了。

为了一个目的,您可以获得更大的灵活性(为信用卡收费,也可能存储信用卡以实现PCI合规性)。然后在您的rails应用程序中使用cron作业,支付时间的日期字段以及每个人支付的金额(如果他们使用优惠券等)滚动您自己的定期结算。

一个小例子:有时人们会在月中取消每月订阅。他们希望确保在下次付款之前不要忘记取消。我见过的大多数网关定期结算将立即终止帐户(或向您发送一条消息,表明此情况)。实际上,用户已经在月底付款,并且应该再获得2周的访问权限。如果您已在rails中滚动自己的定期结算,则可以执行此操作,但如果您使用网关定期结算则不行。只是一个小例子。

答案 1 :(得分:5)

RailsKits有一个Software as a Service kit可以满足您的需求。它内置支持免费试用,升级,降级,计划限制等,并支持PaymentExpress(以及其他一些)。

我已经为我正在做的项目研究了一下,但我还没有购买它所以我不能保证它。但是,我看到一些博客文章称赞这个工具包。

虽然RailsKit在比较自己实现其所有功能所需的成本时相对便宜,但有一些开源版本旨在实现同样的目的。我记得的那个名字叫Freemium

编辑:我忘了提到瑞恩贝茨在他的most recent Railscast中说他下一两集将处理经常性结算,所以请留意这一点。他通常每周做一集,自12月22日以来他完成的五件事都包括处理不同类型的付款。

答案 2 :(得分:4)

Peepcode有PDF待售(70页),详细介绍了付款处理和行业惯例的各个方面。值得一试:

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

答案 3 :(得分:4)

我也正在建立一个基于订阅的网站,这些是我们目前的要求。他们可能会帮助您做最佳实践:

  • 用户可以选择其中一个 订阅计划。
  • 用户将被要求输入他们的 注册的信用卡详细信息 他们选择的计划。
  • 所有主要信用卡和借记卡必须 被接受包括Maestro和 美国运通。
  • 每个计划都有30天免费 试用用户的信用卡应该 仅在30天后收费 期限到期。但是,有效性 应该检查信用卡 报名时间。
  • 用户将通过电子邮件发送几天 在信用卡收费之前 通知他们他们会 收费很快,除非他们取消他们 帐户。如果他们取消了他们的帐户 他们的30天免费试用期内 不应向信用卡收费。
  • 任何免费试用期后,用户 将提前收取他们的费用 使用该系统 - 即他们会 预付费。
  • 将自动向用户收费 每个月他们选择的计划。 每个月,用户都会收到一个 提前几天发送电子邮件通知 他们将被指控他们。一旦 付款已经完成,用户将是 通过电子邮件发送显示他们的发票 已收到付款。
  • 用户可以升级或 随时降级他们的帐户。 当用户升级/降级时,他们的 下次订阅费用为 新的利率。用户只能使用 将他们的帐户降级为计划 可以处理他们的数据。对于 例如,如果他们目前有10个 积极的项目,他们不能降级 到基本计划因为基本 计划只允许5个项目。他们 将不得不删除或存档5 你可以在他们面前做项目 降级为Basic。
  • 用户可以登录他们的 帐户并更改或更新他们的 信用卡详情。
  • 用户可以取消他们的 帐户随时。将没有 a之后的进一步订阅费用 用户已取消其帐户。 但是,用户将不会退款 他们有一个月的部分时间 已付款。
  • 付款系统的所有部分都必须 符合100%PCI DSS标准;包含 任何第三方系统。
  • 支付系统必须支持 自动通知和重试 订阅续订失败。
  • 支付系统必须支持 有效期的折扣券。
  • 信用卡详细信息不得为 处理或存储在我们的服务器上
  • 他们应该始终由我们的第三方处理/存储 支付处理合作伙伴我们不 希望获得安全保障 这些细节和遵守 法律规则和条例。
  • 用户可以登录他们的 帐户并查看完整帐单 历史包括日期和金额 支付。我们也需要 能够登录系统查看 客户付款计划和付款 历史。这对于必不可少 客户服务。

我们一直在关注http://chargify.com/,看起来它可以节省大量的编码时间。