Braintree Sandbox API 请求突然失败:“账单状态格式无效”

web*_*_la 4 braintree braintree-sandbox

我们正在运营一家与 Braintree 连接的英国 Magento 商店。一切都顺利运行了几个月,然后突然间,我们无法再在连接到 Braintree Sandbox 的任何临时或本地测试环境上完成订单。

结账时,会向 3d 安全端点发出请求,如果我们进入了英国的县,我们会收到以下响应:

端点: https://api.sandbox.braintreegateway.com/merchants/xxx/client_api/v1/ payment_methods /xxx/ Three_d_secure/lookup

请求计费部分:

"additionalInfo": {
        "billingCity": "Leeds",
        "billingCountryCode": "GB",
        "billingGivenName": "John",
        "billingLine1": "50 Upton Road",
        "billingPhoneNumber": "07733222111",
        "billingPostalCode": "LE6 7TH",
        "billingState": "Yorkshire",
        "billingSurname": "Smith"
    },
Run Code Online (Sandbox Code Playgroud)

回复:

{
    "error": {
        "message": "Billing state format is invalid."
    },
    "threeDSecureInfo": {
        "liabilityShiftPossible": false,
        "liabilityShifted": false
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我们从结帐中删除县字段(并最终从请求中删除“billingSate”),则响应有效,我们可以正常结帐。

  • 这只是最近才开始发生的
  • 相同的代码库在生产 Braintree 上运行良好
  • 我在生产中使用完全相同的参数模拟了请求,并且工作正常
  • 向 Braintree 提出罚单但没有回复
  • 我可以检查我是否在县字段中使用两位数的美国州代码

有人有主意吗?

web*_*_la 5

我终于得到了布伦特里关于此事的答复。显然,3ds2 现在已在沙盒上强制执行,这要求将州或县作为两位数代码发送。

在生产中,如果发送全名,它将(当前)优雅地降级为 3ds1 并完成。

为了促使人们使用 3ds2,沙盒不会切换到 3ds1 并返回错误。