Braintree 集成错误:检测到 3DS 1.0 表单 POST 到 3DS 2.0 端点

问题描述

我正在尝试使用 Braintree 定期付款来实现 3DS,并且我正在使用嵌入式 UI。 我执行以下步骤:

  1. 我创建了一个 Braintree.dropin.create 以获得一个 dropin 实例。
  2. 我创建了一个 Braintree.threeDSecure.create(版本:2)以获得一个 ThreeDSecure 实例。
  3. 我使用 { threeDSecure: { amount: "AMOUNT",email: "EMAIL" }} 对象对 dropin 实例进行 requestPaymentMethod 调用
  4. 我使用从 requestPaymentMethod 获得的随机数进行客户->创建调用
  5. 我根据从新客户处获得的令牌创建一个新的随机数,使用 paymentMethodNonce()->create。
  6. 我使用获取的 nonce 对 threeDSecure 实例进行了 verifyCard 调用,以便使用 3DS 升级新的 nonce。
  7. 我使用升级后的随机数进行订阅()->创建调用

为了测试,我使用他们的卡片 (https://developers.braintreepayments.com/guides/3d-secure/testing-go-live/php)。问题是,当我测试与挑战相关的卡片时,在进行挑战(输入代码)并提交后,会弹出一个错误消息 出现“集成错误:检测到 3DS 1.0 表单 POST 到 3DS 2.0 端点”。如果我使用任何其他卡,一切正常,订阅是在沙盒中进行的,交易似乎是使用 3DS 实现的。 有人知道那个错误是什么吗?

谢谢

解决方法

我们在与他们的沙箱集成时遇到了与 Braintree 托管字段(最新的 .NET 和 JavaScript API)相同的问题。

在我们的例子中,我们使用的是 Night Eye chrome 扩展。删除扩展程序解决了问题。

我们直接与 Braintree 讨论了这个问题(在发现扩展修复之前),他们与我们一起记录了

“该错误消息来自我们的 MPI 提供商 Cardinal Commerce。从历史上看,此错误消息是由于临时中断或在他们的沙盒维护时段之一期间发生的。”

我们在来自 https://songbirdstag.cardinalcommerce.com 的文件中的开发控制台中看到错误,无法解析 JSON,因此它与他们所说的相符。

如果您确实遇到此错误,那么 Braintree 建议与他们的支持人员联系,以便他们检查您的具体情况。

您可以向 Braintree [email protected] 提交支持票。 还值得查看支付门户中的交易,以了解正在使用哪种类型的 3DS。