【问题标题】:3D Secure - test.sagepay.com returning a blank page3D Secure - test.sagepay.com 返回一个空白页
【发布时间】:2019-12-08 00:25:10
【问题描述】:

我有同样的问题: Sagepay Direct 3D Secure Blank Page Issue ....虽然在我的例子中没有任何魔法,我仍然无法显示 3D 安全测试页面。以下是提交的表单字段(根据 Chrome 的开发者工具,网络选项卡):

<form name="form" id="3dsecureform" action="https://test.sagepay.com/mpitools/accesscontroler?action" method="post">
<input type="hidden" name="MD" value="20156449501764516147" />
<input type="hidden" name="PaReq" value="eJxVUUFuwjAQvPcVUa6VWDuxE0CLEW0OpYIqKlRC3NzEKmmTAE7SQl+PDUkpt5n1emZ3FseHIne+la6ybTlyaY+4Y3GHy41WKlqopNFK4FxVlfxQTpaOXI9QHjA24ISGAeM0oCx0BcaTV7UX2AoJo9OjCB01CjrZyLIWKJP9w/RFMNLnvofQUiyUnkaCM8L8gBM/9PseCxEuZSxlocSzzLNZnSKcGSbbpqz1UfS9AKEj2OhcbOp6NwRAsATh6h03FlXm8yFLhcybr08S/t7/kOh9uQoGJNaz9WodvZERgu3AVNZKmI0HJPSJQ9mQB0NuxjrXURbWVXjMTG02uTDcWZPJzdP/EppItSqTbvCOoTrstqWynxD+MKaqSsTChh/LozOPp8bclhCuyzw+2ViT2iRFbaJnZPUyk4hHyEXQEgTbC+2xoL2rQTf3PgFvDqs0" />
<input type="hidden" name="TermUrl" value="https://www.EXAMPLE.co.uk/sagepay/3dsecurecallback" />
<button type="submit btn btn-primary">Submit</button>
</form>

我尝试将表单操作更改为?action=auth。这产生了一个 3D 安全页面,但所有字段都显示为空。我正在使用 PHP,所以我也尝试在每个字段周围放置 trim(urlencode())。结果相同 - POST 为 200 OK,但响应完全空白。我认为提交的字段一定有问题.....

【问题讨论】:

  • 您查看过 test.sagepay.com 上的交易吗?对于未成功处理的部分,应该有一个“无效”部分。
  • 感谢您的回复。是的。所有测试都显示为“3D”-“未完成”。操作的第一部分正常 - 因此交易已在 SagePay 中注册。上述表单的值来自对第一次操作的响应,然后提交给 [test] 银行进行 3D 身份验证。
  • @John,你说的空白页是 404 吗?
  • 我已经更改了action=auth,现在它为我返回了一个 HTML 有效负载,而不是一个空白页面和 200 OK。

标签: opayo


【解决方案1】:

我检查了我的开发日志,并且确实从 SagePay 收到了 https://test.sagepay.com/mpitools/accesscontroler?action=pareq 的 ACSURL。在我看来,您的表单在 ?action 之后缺少 =pareq。希望这能解决问题。

【讨论】:

  • 感谢您的建议。不幸的是,如果我硬编码:
  • 感谢您的建议。不幸的是,如果我硬编码:test.sagepay.com/mpitools/accesscontroler?action=pareq 我会直接拒绝 POST,“404 Not Found”我也尝试过:test.sagepay.com/mpitools/accesscontroler?action=PaReq 结果是“200 OK”,但又是一个空白页。跨度>
  • 嗯...我会向 SagePay 支持发送电子邮件。当他们在 VPSprotocol v4.0 上工作时,我被告知对于新版本,并非所有内容都可用于测试。例如:我无法测试 v4.0 3DSecure 挑战。您是否收到调用 VPSprotocol v3.0 或 VPSprotocol v4.0 的错误?过去我从他们那里得到了很好的帮助,他们可以看到他们的服务器出现了什么,并希望能帮助你。
【解决方案2】:

进行了两项更改: 1.根据 KH-S 的评论,需要将 pareq 附加到表单操作 [我认为我的 PHP 方法将其从 SagePay 响应中删除] 2.在SagePay界面,需要在设置下添加站点URL。

这两项更改都是必需的。 谢谢你的帮助,KH-S。

【讨论】:

    【解决方案3】:

    我在尝试实现 3DS2 时遇到了同样的问题,在尝试重定向到提供的 acsUrl 时收到一个空白页。 (即https://test.sagepay.com/mpitools/accesscontroler?action=pareq

    在与支持人员交谈后,他们说我应该只在我的帐单地址上使用英国/GB,因为目前其他任何东西似乎都出错了(我最初使用的是阿富汗,因为它在列表中排名第一)。

    遵循这个建议后,我在https://test.sagepay.com/3ds-simulator/html_challenge 中得到了一个完全不同的acsUrl

    我认为这只是一个暂时的问题,但对于那些现在正在实施的人来说值得注意

    【讨论】:

    • 您是否仍然碰巧有一个带有United Kingdom/GB 的请求示例,即使对我来说它也会返回一个空白页。
    • 不,我不明白了。但是,我确实通过未在门户中激活 3DS2 规则而错误地创建了一个类似的问题,相反,我只是试图传递值为 1apply3DSecure 参数以强制 3DS2,但显然,此参数如果您忘记在门户中打开它,则会失败。
    • 我注意到我得到的 ACSURL 是 https://test.sagepay.com/mpitools/accesscontroler?action 但是当我们提交回它时返回一个空的有效负载。多次尝试让他们告诉我这是否是正确的 URL。没有运气。有谁知道用于测试的 ACSURL 是什么?
    猜你喜欢
    • 2019-12-12
    • 1970-01-01
    • 2016-03-31
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 2015-09-20
    相关资源
    最近更新 更多