版本 4.0 本地主机测试获取 3228:ThreeDSNotificationURL 字段格式无效

Version 4.0 localhost testing getting 3228 : The ThreeDSNotificationURL field format is invalid

我目前正在使用直接集成测试 PSD2 协议版本 4.0 的更改。

我在 Visual Studio 下 运行 使用本地主机网站地址。

在将 ThreeDSNotificationURL 设置为本地主机地址 (http://localhost:15536/Payments/ThreeDResponse) 的情况下调用 SagePay 支付端点时,我收到以下错误“3228:ThreeDSNotificationURL 字段格式无效。”

如果我将此字段更改为完全限定的域 (http://www.google.com),我将不再收到错误,但无法完成我的测试。

在协议的 3.0 版中使用 localhost 作为 termurl 可以正常工作。

您是否URL 在您的 post 中对 ThreeDSNotificationURL 进行了编码? 我是这样发送的,没问题: sb.Append(HttpUtility.UrlEncode(https://www.clientdomian.com/ac/ThreeDSNotificationURL.aspx")); 我 运行 我的本地 IIS 上的站点用于开发。

我曾尝试像您一样在本地工作,但遇到了同样的问题。在与支持者交谈后,他们确认他们不会接受 "localhost"。此外,文档表明 HTTPS 是一项要求,因此这也可能是一个阻碍因素。

我认为有人建议使用 ngrok 作为将外部请求传送到本地主机的方法,这是在本地继续开发的好方法,同时也对 SagePay 等服务在外部可见。

一旦我解决了上述问题,我又收到了一些关于此处列出的其他缺失必填字段的错误; https://www.sagepay.co.uk/support/38/psd2-under-direct-integration(请注意,如果 BrowserJavascriptEnabled 为真,则所有条件字段都是必需的)

我最近遇到了这个问题,我想在这里记录下来,因为搜索这个问题的结果很少。

当我将我的 Opayo/SagePay 扩展(Magento 的 MageNest SagePay)切换到 3ds2 时收到此错误代码。

事实证明,完整的 URL 并未发送。它试图发送 sagepay/direct/postBack?form_key=HZuYxgiEq9w2CNFB 而不是 https://www.example.com/sagepay/direct/postBack?form_key=HZuYxgiEq9w2CNFB。这部分是我的错,因为配置中有一个域字段是空的(这不像是不能自动检索域,呵呵),部分是供应商的错,因为它非常糟糕 记录在案。

虽然这是不同平台的不同问题,但我希望这对某人有所帮助。