如何使用 Authorize.Net 一次性从信用卡中收取费用并设置自动定期计费

Posted

技术标签:

【中文标题】如何使用 Authorize.Net 一次性从信用卡中收取费用并设置自动定期计费【英文标题】:How to charge credit card AND set up automated recurring billing in one step with Authorize.Net 【发布时间】:2011-10-09 15:56:21 【问题描述】:

我正在将 authorize.net 集成到我的 Web 应用程序中。我最初使用直接邮寄方法 (DPM) 向帐户收费。但是,对于每笔交易,我还需要设置自动重复计费。我如何在不再次询问信息的情况下执行此操作,尤其是在 DPM 发布初始交易后,信用卡数据不再可用时?

我还想了解每笔重复交易的状态,以便在必要时对其进行确认和跟进。

【问题讨论】:

【参考方案1】:

您无法使用 DPM 执行此操作,因为它会将用户的信用卡信息从您的网站中取出,因此您无法访问它。如果您想进行首期付款,然后使用 ARB 创建订阅,则需要将 AIM 与 ARB 结合使用。

【讨论】:

确认一下,AIM 是 Authorize.Net 托管的方法?如果是这样,那么在没有信用卡进入您的系统的情况下,您将如何做呢?我有点担心安全问题。 是的。我的意思是他们的高级集成方法 API。 据我所知,AIM 和 DPM 之间的区别在于,支付数据被发布回您的网站,而不是 Auth.Net。然后调用 Auth.Net API 来处理事务。正确的?我唯一担心的是在交易期间(几秒钟)我拥有信用卡数据。从 PCI/DSS 的角度,您对短期内处理信用卡数据的最佳方法有什么建议? CIM 怎么样?我可以创建个人资料,然后立即收费吗?这可以在使用我自己的网页时完成,还是必须使用托管选项? 您可以使用 CIM 创建配置文件,然后立即收费。您可以使用 API 或托管版本,因为两者本质上都做同样的事情。我还没有玩过托管版本,所以我不确定如何最好地使用它,但如果你使用 CIM,你应该能够实现你的目标,即通过一步付款和设置订阅。唯一的问题是您需要编写自己的订阅引擎,因为无论您使用哪个版本,CIM 都不提供定期计费功能。【参考方案2】:

您需要使用 ARB 界面来进行定期交易,但它存在很多问题,例如缺乏支持(例如,发送电子邮件并等待几周以获得无用的回复)和薄弱的文档。

Authorize.net ARB 的 SOAP 接口文档: http://www.authorize.net/support/ARB_SOAP_guide.pdf

对于 XML 接口: http://www.authorize.net/support/ARB_guide.pdf

ARB 编程文档: http://developer.authorize.net/api/arb/

我刚刚从 Authorize.net 关闭到 USAEPAY。以下是一些原因: 1. 当您使用 Authorize.net ARB 时,您的客户来到网站上进行注册,然后您发送 ARB 请求以创建订阅,您会收到一个成功代码,因此您可以为用户提供订阅。然后那天晚上晚些时候,他们实际上试图收取第一笔款项,但很多时候都失败了,所以第二天你会收到一份关于问题的电子邮件电子表格。这很糟糕,因为现在您失去了在注册时向客户说卡被拒绝的机会。再见销售! 2. 我不知道他们最近是否添加了这个,但他们没有办法验证客户的信用卡是否仍然有效。想象一下,在订阅 3 个月后,该卡已超过限制、取消或过期等。您不知道如何提示客户放入一张新卡?除非您想手动打开这些电子表格并开始向客户发送电子邮件,否则您只会停止获得报酬。呸。

USAEPAY 效果更好,API 更简单,文档记录更好,您可以在 1-2 天内收到电子邮件回复,而且成本更低。例如,您可以查询 USAEPAY 以获取成功付款的列表,并验证您不应因未付款而停用该帐户: http://wiki.usaepay.com/developer/soap-1.4/methods/getcustomerreport

在您使用 AuthNet 之前,我强烈建议您为自己省去很多痛苦,并联系 FranchisePaymentNetwork (FPN) 以设置 USAEpay。

他们甚至可以回传到您的网站,让您知道交易是否成功以进行定期结算交易,您可以查询它以验证是否已收取客户付款,以便您知道是否应该使帐户过期.

我不隶属于 USAEpay 或 Franchise Payment Network,除非是他们服务的满意付费客户/消费者。

【讨论】:

仅供参考,Authnet 还具有“回发”功能。它被称为Silent Post。此外,根据您的回答,如果您将订阅设置为在​​设置它的同一晚开始,那么您显然没有很好地实现他们的 API。你不应该那样做。您应该使用 AIM 收取第一笔付款,然后使用 ARB 进行所有经常性付款。就集成而言,Authorize.Net 是迄今为止最简单的。您将很难找到一位经验丰富的电子商务开发人员。 另外,您无需使用网络界面来设置定期计费订阅。他们的 API 运行良好。此外,他们的support forums 是获得问题帮助的好地方。 此外,没有办法判断信用卡在未来某个日期是否有效。没有公司是通灵的,可以告诉你这一点。无论您使用谁作为支付网关,未来订阅支付失败的几率都是相同的。如果您使用 Silent Post,您还可以自动联系失败的付款。事实上,一个构建良好的网站或应用程序可以做到这一点。 我几乎不同意你所说的一切。 我完全不同意你关于文档的立场,我坚持我的观点,Authorize.net 是一个令人头疼的问题,并且存在像 USAEPAY 这样的更好(并且更便宜、更好的文档和支持)的替代方案值得考虑。

以上是关于如何使用 Authorize.Net 一次性从信用卡中收取费用并设置自动定期计费的主要内容,如果未能解决你的问题,请参考以下文章

Authorize.Net 验证信用卡 AIM 和 ARB

Magento 多个 Authorize.net 网关

仅使用 Authorize.Net:对单个信用卡收费授权进行多次部分捕获

ActiveMerchant 如何处理 Authorize.net 上的定期付款取消信用卡帐户?

使用 authorize.net 获取已取消/过期信用卡的状态以进行定期计费

沙盒中的 Authorize.net 信用卡收费将 refTransID 作为响应返回为 null