【问题标题】:How to process recurring transactions with Authorize.Net如何使用 Authorize.Net 处理经常性交易
【发布时间】:2023-03-14 12:57:01
【问题描述】:

我正在尝试通过 Authorize.Net 处理定期付款,并满足以下要求:

  • 付款处理将由我们发起

  • 客户只会在第一次交易时输入卡数据。我们会按月向卡计费,金额可能不同,但不会显示卡数据。

  • 希望在第一次交易时要求 CVV。如果成功了,当我们 每月对卡计费,交易不需要CVV 稍后。

  • 我们不希望存储敏感信息,例如信用卡数据。 用户稍后可以选择指定不同的卡或 更新他们的个人资料(这可以通过 SOAP、XML 或任何常见的 可用方法)

  • 这将包括电子支票交易

实际上,我们正在尝试创建与亚马逊类似的体验,您只需输入一次卡片数据即可。以后购买时,只需选择要使用的个人资料/(卡和送货地址)即可付款,无需再次输入卡或CVV。唯一的区别是,我们将在未来开始付款,因为我们的服务是基于订阅的。

我最初的想法是使用 CIM。但是,由于第三个要求,CIM 可能不适用于此,因为它不存储 CVV。实现我们所追求的结果的最佳途径是什么?

【问题讨论】:

    标签: credit-card authorize.net


    【解决方案1】:

    您无需使用 AIM 进行首次付款。只需使用 CIM 并将 CVV 代码与付款资料一起发送即可。 Authorize.NET 不会存储 CVV 代码,但会对其进行一次验证,并记住该卡已通过支付配置文件的费用验证。我们已经使用这种方法一年多了,没有遇到任何问题。

    【讨论】:

    • 如果我的帐户资料需要 CVV,而我向没有它的现有资料发送 PaymentRequest 怎么办?会被拒吗?
    • 根据他们的文档,它不应该被拒绝。他们声明您在创建/更新付款配置文件时发送它,它用于验证配置文件。一旦配置文件被验证,那么它就不再被使用并且不应该影响后续的交易。​​
    • 比这更复杂:CVV只有在validationMode设置为liveMode时才会被验证。但请注意,这会创建一个立即无效的测试交易,但您仍然需要支付交易费用(目前为 0.10 美元)!
    【解决方案2】:

    为此,您需要结合使用高级集成方法 (AIM) 和客户信息管理器 (CIM) API。您将使用 AIM 处理第一笔付款,这将允许您验证所提供的 CVV 号码是否有效。如果是,那么您可以在 CIM 上为他们设置付款配置文件。

    【讨论】:

    【解决方案3】:

    Authorize.net 允许您通过 Web 界面配置卡代码验证设置,如下所示:

    Select the conditions for which the Payment Gateway should reject a transaction when
    the Card Code submitted does not match the value on file with the customer's credit
    card company.
    
    Reject Transaction If Card Code value...
        _ Does NOT Match (N)
        _ Is NOT Processed (P)
        _ Should be on card, but is not indicated (S)
        _ Issuer is not certified or has not provided encryption key (U)
    

    卡代码验证(如地址验证)只有在提交卡代码时才会真正发生。启用卡代码验证过滤器不会影响在没有卡代码的情况下提交的交易。

    还有一个名为“付款表格 - 字段”的单独页面,您可以在其中指定付款表格上可以查看、编辑和必填的字段。如果您在此表格上勾选需要 CVV2,则每次使用 AIM/CIM 时都需要指定 CVV2。请注意,如果需要,在代码中实现此要求似乎更明智,而不是选中 Authorize.net 上的框,然后尝试调试错误。

    如果您将 CVV2 按要求保留在“付款表单 - 字段”上,如果您保存了付款资料,则可以在保存的 PaymentID 上提交新的交易请求,而无需任何 CVV2 和它不会被拒绝。

    现在,我相信您已经看到一些网站会向用户显示保存的卡(当然是屏蔽的),并要求他们再次输入 CVV2 - 只需输入 CVV2,无需重新输入卡号.

    如果您想在 Authorize.NET CIM 中的现有支付配置文件上实际仅重新验证 CVV2,则不能使用 updateCustomerPaymentProfileRequest,因为它需要卡号。

    您所做的是在 TransactionRequest 中有一个 profileTransAuthCaptureType 对象,该对象接受 ProfileID 和 PaymentID。它还有一个 cardCode 字段,您可以在其中放置 CVV2!这使您无需再次询问整个卡号/到期日期即可重新验证 CVV2。在这种情况下,即使选中了“未处理”,并且在“付款表 - 字段”上将 CVV2 标记为必填项,您也不会被拒绝。

    疯狂是有方法的,但它肯定很复杂,因为你可以控制所有设置,并且它们需要在多个地方同步才能按照你的意愿工作。

    【讨论】:

      猜你喜欢
      • 2015-10-28
      • 1970-01-01
      • 2020-06-16
      • 2016-08-06
      • 2011-03-29
      • 2012-04-14
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多