32

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

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

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

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

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

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

其他有用的建议是有关应用程序流程的任何内容。应如何向用户呈现计费表单?什么时候需要信用卡信息?应如何发送、存储和访问发票?

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

4

4 回答 4

8

我想补充一件事:请记住,您不需要使用网关内置的定期计费功能。一般来说,这些系统都是遗留系统,很难处理,我们在铁路世界中被宠坏了。

仅将它们用于一个目的(为信用卡计费,也许还存储信用卡以符合 PCI 标准)时,您将获得更大的灵活性。然后在您的 Rails 应用程序中滚动您自己的定期计费,其中包含 cron 作业、付款时间的日期字段以及每个人支付的金额(如果他们使用优惠券)等。

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

于 2009-05-27T18:52:12.153 回答
5

RailsKits有一个软件即服务工具包,可以满足您的需求。它内置了对免费试用、升级、降级、计划限制等的支持,并且支持 PaymentExpress(和其他一些)。

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

与您自己实现所有功能的成本相比,RailsKit 相对便宜,但有几个开源版本旨在完成同样的事情。我记得的那个叫免费增值

编辑:我忘了提到瑞恩贝茨在他最近的 Railscast中说他的下一集或两集将处理经常性计费,所以请留意这一点。他通常每周做一集,自 12 月 22 日以来他完成的五集都涵盖了处理不同类型的付款。

于 2009-01-23T16:51:53.100 回答
4

Peepcode 有一个 PDF 待售(70 页),其中详细介绍了支付处理的各个方面和行业实践。可能值得一试:

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

于 2009-02-06T04:04:30.567 回答
4

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

  • 用户将能够选择其中一种订阅计划。
  • 用户将需要输入他们的信用卡详细信息才能注册他们选择的计划。
  • 必须接受所有主要的信用卡和借记卡,包括 Maestro 和 American Express。
  • 每个计划都有 30 天的免费试用期,因此用户的信用卡只能在 30 天的期限到期后收费。但是,应在注册时检查信用卡的有效性。
  • 用户将在信用卡被扣款前几天收到电子邮件,通知他们很快就会被扣款,除非他们取消账户。如果他们在 30 天免费试用期内取消帐户,则不应从他们的信用卡中扣款。
  • 在任何免费试用期结束后,用户将被提前支付使用系统的费用——即他们将预付费用。
  • 用户将每月为其选择的计划自动收费。每个月,用户都会提前几天收到一封电子邮件,通知他们将被收费。付款后,将通过电子邮件向用户发送显示其付款已收到的发票。
  • 用户将能够随时升级或降级他们的帐户。当用户升级/降级时,他们的下一次订阅费用将按新费率计算。用户只能将其帐户降级为可以处理其数据的计划。例如,如果他们当前有 10 个活动项目,他们不能降级到基本计划,因为基本计划只允许 5 个项目。他们必须先删除或存档 5 ​​个项目,然后您才能降级到 Basic。
  • 用户将能够登录到他们的帐户并更改或更新他们的信用卡详细信息。
  • 用户可以随时取消他们的帐户。用户取消帐户后将不再收取订阅费用。但是,用户已支付的当月部分费用将不会获得退款。
  • 支付系统的所有部分必须 100% 符合 PCI DSS;包括任何第三方系统。
  • 支付系统必须支持自动通知和重试失败的订阅续订。
  • 支付系统必须支持有有效期的折扣券。
  • 信用卡详细信息不得由我们的服务器处理或存储在我们的服务器上
  • 它们应始终由我们的第 3 方付款处理合作伙伴处理/存储。我们不希望承担保护这些细节和遵守法律法规的责任。
  • 用户将能够登录他们的帐户并查看完整的账单历史记录,包括支付日期和金额。我们还需要能够登录系统以查看客户付款计划和付款历史记录。这对于客户服务至关重要。

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

于 2009-11-16T16:46:45.870 回答