2

我们已经为即将到来的 3DSv2 支付卡支票配置了一个测试。test.sagepay.co.uk服务器以找不到“ https://test.sagepay.com/html_challenge_answer ”的页面作为响应,这是他们对正确质询的响应。

有没有其他人在他们的 4.00 版实现中成功测试过这个?

<form action="https://test.sagepay.com/3ds-simulator/html_challenge" name="threed1form" method="post">

    <input type="hidden" name="creq" value="ewogICJtZXNzYWdlVHlwZSIgOiAiQ1JlcSIsCiAgIm1lc3NhZ2VWZXJzaW9uIiA6ICIyLjEuMCIsCiAgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIiA6ICI0NzE3Nzc3Yi0yYjA3LTQzOGQtYWU1OS0xNjE2NzFiNzJkYTAiLAogICJhY3NUcmFuc0lEIiA6ICJkMjBlMTQyZC1lYWEyLTRjMTMtYTAyYy1jN2EwMmZmNDMyMDgiLAogICJjaGFsbGVuZ2VXaW5kb3dTaXplIiA6ICIwMSIKfQ"/>

    <input type="hidden" name="threeDSSessionData" value="{39D1BC2D-AC1D-8267-753E-2AEDB9E2DE9D}"/>

    <input type="hidden" name="ThreeDSNotificationURL" value="https://sss.xxxx.eu/3DCallback.asp"/>

    Click the button below :-<br> 
    <input type="submit" value="Go 3DS "/>
4

6 回答 6

1

今天早上与 SagePay 交谈,

他们最终意识到了这个问题,他们无法说何时可以解决这个问题。

此外,他们无法确认 V4.00 直接集成何时可以在实时服务器上使用。

希望这可以帮助

更新

@史蒂夫温。&@KH S。

您的回答帮助并促进了前进。赞赏。

在与 sagepay 交谈时,他们无法说明 2019 年 9 月 14 日究竟会发生什么,他们认为银行自己到那时可能还没有准备好实施这一点。

希望这可以帮助

于 2019-08-02T10:23:50.517 回答
0

上面提到的 html_challenge 页面现在可以工作了。

我对 term_url/3D 安全回调 URL 有一个新问题:

发布到 /direct3dcallback.vsp 时,我收到以下错误。有没有人设法端到端测试?我相当确定我的 VPSTxId 是正确的。

VPSProtocol:3.00 状态:无效 StatusDetail:5083:回调中提供的 VpsTxId 与 CRes 中的事务不匹配

于 2019-08-12T13:49:00.303 回答
0

@SteveWinn,我遇到了和你完全相同的问题。我很确定我的 VPSTxId 是正确的并且得到了同样的错误。我想知道 /direct3dcallback.vsp 是否没有更新到 4.00,因为它正在响应 3.00?

更新:

在遇到与@SteveWinn 报告的完全相同的问题后,我给 sage 打了一个电话。他们建议在将 VPSTxId 发送到“/direct3dcallback.vsp”时删除其开头和结尾的大括号。我认为这是一个有点或奇怪的建议,因为 vspdirect-register.vsp 首先添加了大括号,但我删除了它们,一切都变得生动起来。

简而言之,要修复,将 VPSTxId 返回为:abc123-4567-FG5F-DFESDFR12243 not {abc123-4567-FG5F-DFESDFR12243}

于 2019-08-14T14:36:04.243 回答
0

KH-S,或任何在 SagePay Direct 上有 3dS 工作示例的人。

我真的很难遵循 SagePay 直接集成协议 4 文档。

我真正陷入困境的是如何设置 iFrame 并让它自动提交。

您能否提供一些基本代码示例来说明您的工作方式。SagePay 文档有以下代码:

<iframe src="3DRedirect.asp" name="3Diframe"> <form action="${acsUrl}" method="post">
<input type="hidden" name="creq" value="${creq}" />
<input type="hidden" name="threeDSSessionData" value="${threeDSSessionData}" /> <p>Please click button below to proceed to 3D secure.</p>
<input type="submit" value="Go"/>
</form> </iframe>

但是没有解释 iFrame 的来源,或者如何使 iFrame 自动提交。

我确信有很多人试图在接下来的几周内实施这些更改。

谢谢 KH-S 我在3DSv2 Sagepay 直接集成基础上发布了一个新问题

于 2019-08-29T10:50:04.753 回答
0

看看这篇文章:Direct Protocol 4.00: PDS2 - 5083: VpsTxId provided in callback does not match transaction in CRes

看起来我们需要从 VPSTxId 中删除大括号。

一旦您发布到https://test.sagepay.com/3ds-simulator/html_challenge,挑战窗口就会出现。完成挑战。挑战完成后,您需要从银行发布的数据中读取 cres 和 VPSTxId。这将来自您随付款请求提供的 ThreeDSNotificationURL。

我在 Modal 中使用 iFrame 执行此操作。iFrame 加载我的第一个页面,其中包含银行的发布数据。然后是挑战窗口,然后是我的 ThreeDSNotificationURL,它读取帖子数据(来自银行),如果成功发送到感谢页面,则突破 iframe。

希望这可以帮助。

史密斯,刚刚在这里看到你的最后一篇文章。在这里我如何为 3DSecure v2 执行此操作:

I get the SagePay response.
If the payment get challenged I redirect to a page which handles that.
That page has the modal with an iFrame.
The iFrame loads another page which I show here:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ChallengeiFrame.aspx.cs" Inherits="ac_ChallengeiFrame" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
  <div id="content">
  <div id="contentHeader">
     Your Bank requires Authentication
  </div>
     <p>
     Please click the button below to continue.
     </p>

     <form action="<%= sACSUrl %>" method="post">
     <input type="hidden" name="creq" value="<%= sCReq %>" />
     <input type="hidden" name="threeDSSessionData" value="<%= sVPSTxId   %>" />
      <input type="submit" value="Click to continue" />
     </form>
     </div>
 </body>
 </html>

客户单击按钮(我没有自动发布版本。我宁愿让客户知道接下来会发生什么,这样他就不会对那个挑战窗口感到惊讶)发布到 SagePay(请参阅隐藏字段和表单操作ACSURL。

SagePay 的响应被我作为 3DSecure v2 的 ThreeDSNotificationURL 提交的页面获取。该页面处理响应并完成订单。

希望这可以帮助。

于 2019-08-14T15:05:32.527 回答
0

KH-S 非常感谢。

因此,如果 Sage 请求 3D 身份验证,您使用 iFrame 为您的客户打开一个页面,iFrame 的源是由您在帖子中显示的脚本创建的?

您如何处理回退到 3DSv1,即 PAReq 和 MD 而不是 CReq 和 VPSTxId。

您是否根据 CReq VPSTxId 或 PAReq MD 的内容确定要为 iFrame 构建的表单,即您确定您是否受到 3DSv1 或 3DSv2 挑战的依据是什么?

我倾向于同意最好让客户单击身份验证按钮,以便他们知道发生了什么,而不仅仅是自动提交表单。

于 2019-08-29T13:15:50.497 回答