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 中使用存储的付款来源进行购买?
如何使用 ActiveMerchant 在 authorize.net 网关中取消授权交易