ActiveMerchant:使用不支持void操作的网关时如何授权卡?

Posted

技术标签:

【中文标题】ActiveMerchant:使用不支持void操作的网关时如何授权卡?【英文标题】:ActiveMerchant: How to authorise cards when using gateways that do not support the void operation? 【发布时间】:2010-10-03 02:13:51 【问题描述】:

我正在使用 ActiveMerchant 开发 Ruby on Rails 应用程序的计费组件。我们选择的支付网关是PaymentExpress。

我看到的代码示例如下所示,使用authorize()void() 来测试卡的有效性:

def test_card!
  auth_response = gateway.authorize(100, card)
  gateway.void(auth_response.authorization) if auth_response.success?
  raise AuthorizationFailed.new(auth_response) unless auth_response.success?
end

但是,PaymentExpress 不支持 void 操作。考虑到诸如 PaymentExpress 之类的网关在 7 天后授权请求到期,是否有其他方法来执行此授权操作,或者是否可以省略 void 操作?

我在文档或 Google 中找不到提及 void获得授权,也找不到任何迹象表明它的重要性。

有什么帮助吗?

【问题讨论】:

【参考方案1】:

某些卡处理商会将此类交易标记为潜在欺诈。他们不喜欢看到小型测试交易之后是大型交易。特别是美国运通在这方面有些激进,因为当您返回并尝试实际金额时,他们往往会拒绝交易。

如果您打算以x 的金额向客户收费,那么您应该授权它以x 的金额来验证卡。然后您可以使用之前的授权并进行捕获或强制发布以完成收费。这样,客户只会在他们的对帐单上看到正确的待处理和结算金额。

【讨论】:

我已经考虑过了,问题是用户将有 30 天的试用期,而且他们很可能会在注册时或试用期间输入信用卡详细信息。 PaymentExpress 会在 7 天后使授权失效,因此 30 天后捕获将不起作用。 然后在获得的卡上运行校验和。 en.wikipedia.org/wiki/Luhn_algorithm “授权”和“验证”是有区别的【参考方案2】:

事实证明,至少使用 PaymentExpress,他们会在卡存储过程中自动执行授权操作。如果授权失败,它根本不会存储卡,而是返回“INVALID CARD”。这可以在他们的交易搜索网络应用程序中看到 - 存储卡时,卡上授权 1.00 美元,并在一周后自动失效。

【讨论】:

以上是关于ActiveMerchant:使用不支持void操作的网关时如何授权卡?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何在 ActiveMerchant 中使用存储的付款来源进行购买?

Paypal、定期计费和 ActiveMerchant

如何使用 ActiveMerchant 在 authorize.net 网关中取消授权交易

在 ActiveMerchant 中测试 Paypal Express

rails activemerchant authorize.net 问题