3D Secure 2.0 与 Braintree 订阅的集成

3D Secure 2.0 integration with Braintree Subscriptions

我正在实施 3DS 2.0 与 Braintree 订阅的集成。 Braintree 的文档不够清晰,无法回答我的问题,而且 Braintree 的支持根本没有帮助。以下是我的问题:

  1. 何时是执行卡验证的最佳时机:将卡添加到保险库时或创建订阅时?也许我应该在这两种情况下都这样做两次?
  2. 将卡添加到保险库时应该使用多少金额来验证卡?它应该是 0 美元、1 美元还是我应该依赖 Braintree 网关在我不传递金额时选择的金额?
  3. 将卡添加到保险库时执行的 3DS 2.0 验证是否保证以后(创建订阅时)我可以在没有 3DS 的情况下为卡充值数百、数千美元?
  4. 如果在创建订阅时需要进行验证,那么这样做是否正确:
    1. 使用支付方式令牌从 Braintree 获取 PaymentMethodNoce
    2. 使用随机数验证卡并获得一个新的随机数
    3. 将第2步得到的Nonce作为SubscriptionRequest中的PaymentMethodNonce参数
  5. 如果我降低或提高订阅价格会怎样?我必须重新验证 3DS 吗?我应该用更新后的价格重新验证吗?
  6. 我正在使用按比例分配机制。 3DS 是否对此有任何影响?
  7. 当用于创建订阅的 3DS 验证卡更改为新卡时会发生什么情况?应该使用多少金额来验证新卡(就像第二个问题一样)?
  8. 如何在不需要 3DS 重新验证的情况下提高订阅价格?
  9. 是否有说明如何使用 3DS 和订阅的示例代码?

看起来 Braintree 不知道如何回答这些问题,或者出于某种原因不想这样做。非常差的支持。如果有任何反馈,我将不胜感激。

我曾与 Braintree 联系过,有类似的问题。我想我可以回答你的问题。这是我对情况的看法:

  1. 最好的时刻是知道订阅价格的时候。您应该按照卡验证期间指定的金额向保险卡收费(某些例外情况,例如不需要验证的小额金额)。如果您跳过验证,您似乎要对欺诈行为负责,而不是银行。如果您验证的金额低于您尝试收取的金额,我想银行可以拒绝交易。

  2. 您无法验证金额为 0 美元的卡。我试过了。我在这里的假设是您不验证保险卡。知道金额后,您可以从保险库中选择一张卡,验证金额并使用从 3DS 获得的随机数更新订阅。

  3. 金额增加时请重新验证。我的观点是,您可以跳过 3DS 以进行更高金额的后续付款,但您对潜在的欺诈行为负全部责任。如果您使用新金额执行 3DS,负债将转移到银行。

  4. 是的,这似乎是正确的。

  5. 是的,你应该用3DS重新验证。验证总是要求您指定金额,因此请使用新金额进行验证。

  6. 我一分钟前收到了 Braintree 对此的回复。这应该不是问题。升级订阅时,您可以根据每月价格验证卡。按比例分配的金额将小于该金额。如果您收取的金额少于核实金额,银行也不会在意。

  7. 我这里用的是包月金额

  8. 只需使用新金额更新订阅即可。但是,我认为如果您跳过 3DS,您将再次承担欺诈责任。

  9. developers.braintree.com 充满了例子。对于 3DS,请参阅 https://developers.braintreepayments.com/guides/3d-secure/client-side/javascript/v3

我也有类似的问题,Braintree 支持团队快速且非常乐于回答。