使用 authorize.net 获取已取消/过期信用卡的状态以进行定期计费
Posted
技术标签:
【中文标题】使用 authorize.net 获取已取消/过期信用卡的状态以进行定期计费【英文标题】:Getting status on canceled/expired credit cards for recurring billing with authorize.net 【发布时间】:2011-01-01 03:51:52 【问题描述】:我们正在建立一个系统,该系统将使用 XML API 通过 Authorize.net 进行自动定期计费。
设置定期结算看起来很简单。但是我们有两个看起来并不明显的特征 * 向客户提供个人付款的详细信息 * 向客户提供过期/取消卡的通知
有人熟悉以自动形式检索此信息的机制吗?我们正在考虑 * 只是根据我们自己的计算列出假设的付款开始日期 * 根据 ards 的到期日期向客户发送电子邮件
但我不知道如何确定交易何时因取消卡而失败(并自动通知客户)。
在实施基于 Authorize.net 的基于订阅的服务时,谁能评论他们如何处理此问题?
【问题讨论】:
【参考方案1】:您需要使用静默 POST URL
ARBGetSubscriptionStatusRequest 将不起作用。如果第一个事务(或自 ARB 配置文件更新后的第一个事务,通过 API 或手动)失败,则订阅状态设置为暂停。否则,当交易被拒绝或卡过期时,订阅状态不会改变。
使用静默 POST URL,您会收到交易成功的通知,并且您可以使用它们来更新您的数据,例如跟踪下一个付款到期日/到期日。然后您可以运行一个 cron 作业,如果此字段尚未更新,您将知道该卡已被取消或过期。
如果它仍然是有效卡但被拒绝,您将在静默 POST URL 上收到通知
【讨论】:
注意:如果您更新暂停的 ARB 配置文件,该配置文件将重新激活,并且 Auth.net 将尝试重新计费导致 ARB 配置文件暂停的失败付款。【参考方案2】:Authorize.Net 最近发布了一个新的 ARB 方法“ARBGetSubscriptionStatus”。
您现在可以轻松查询之前提交的 ARB 订阅的状态,而无需依赖“静默发布方法”。
示例:
<?xml version="1.0" encoding="utf-8"?> <ARBGetSubscriptionStatusRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> <merchantAuthentication> <name>mytestacct</name> <transactionKey>112223344</transactionKey> </merchantAuthentication> <refId>Sample</refId> <subscriptionId>100748</subscriptionId> </ARBGetSubscriptionStatusRequest>
【讨论】:
这个方法只是有点帮助。有关更多信息,请参阅下面“阿里纲吉”的答案。【参考方案3】:您想使用 Authorize.Net 的静默发帖功能。它会通知您通过他们的系统进行的所有付款,包括拒绝和过期的信用卡。然后,您的脚本将能够暂停帐户和/或通知您的客户他们的付款失败。
查看以下链接了解更多信息:
Handling Authorize.Net ARB Subscription Failures
All About Authorize.Net’s Silent Post
Handling Authorize.Net Silent Post with php
【讨论】:
除非它不会通知您所有情况。其中一种情况是过期的卡。 尽管他们的文档另有说明,但它实际上确实如此。我什至在 Authnet 上与开发人员讨论过它。但即使它们最终停止,您也可以自动处理过期卡,因为在这种情况发生时会生成电子邮件。它只需要通过管道传送到一个脚本来处理它。 只有当它认为卡还没有过期并且被处理器拒绝过期时才会这样做。电子邮件方法是我们添加到已经存在 ARB 的客户系统中的方法。我们已经有其他场景的重复目标交易,因此我们正在逐步淘汰 ARB/我们仍然需要处理所有现有的 ARB,直到卡片过期以上是关于使用 authorize.net 获取已取消/过期信用卡的状态以进行定期计费的主要内容,如果未能解决你的问题,请参考以下文章
ActiveMerchant 如何处理 Authorize.net 上的定期付款取消信用卡帐户?