Opayo从我们的付款请求中返回,要求我们联系https://www.rsa3dsauth.co.uk/3ds2/cReqWebBased?issuer=barclays"进行3D安全身份验证,所以我们发送以下内容:
<form id="c-form" method="POST" action="https://www.rsa3dsauth.co.uk/3ds2/cReqWebBased?issuer=barclays">
<input type="hidden" name="creq" value="*removed for data protection*" />
<input type="hidden" name="threeDSSessionData" value="tQtpVHCcCVGEhPNDaeCtMK9I%2fREJERnarovmuZPsM4M6xy6gks9rOYix36waoxOn1wukcobCFbfd2jpmVDVDwZjrd3MzJtmpyFDEAu5R9azVveH6kBEXc5F2ETnFijQfEj5l6EzmH7EnMzbTlFHgbkDGR%2fH9CtURo0K2VSUKHN4%3d" />
<script>
document.addEventListener("DOMContentLoaded", function()
{
var b = document.getElementById("c-form");
b && b.submit();
});
</script>
</form>然后我们就回来了
POST https://xxxxx.xxxxxxx.xxx/api/payment/3dsecurechallenge?eid=ctl00_cphMain_Payment_SagePay_ThreeD
cres=*removed for data protection*&threeDSSessionData=注意,&threeDSSessionData=后面没有任何东西,它应该将字符串返回给我们。

还有谁有这个问题吗?
发布于 2021-06-25 04:42:38
threeDSSessionData似乎是在输入标记中编码的URL。你在没有URL编码的情况下尝试过吗?我认为它应该只是base64编码的。
发布于 2021-07-23 22:56:59
只是添加一些更多的上下文-我们有同样的问题,但只有在6月初的rsasecure.co.uk。其他银行运作正常。关于这一点,我们与Opayo有一个公开的案例,但没有太多的沟通。
当此问题发生时,我们关闭了3DS,但已被建议今天(23.07.21)重试,因为这可能是银行方面的问题。
发布于 2021-06-16 18:35:03
我现在收到了Opayo的回复。我还认为他们可能已经改变了一些东西,因为我确信我之前尝试过,但它不起作用……
threeDSSessionData是VPSTxId的base64编码(包括花括号)。它不是base64url编码的--谈论url编码是在转移注意力,因为浏览器自动提交无需我们做任何事情就能处理它。
下面是一个适用于我的示例。
我卷曲地将卡片的详细信息发布到vpsdirect-register.vsp (或您正在使用的任何口味)。这必须包括一个URL值,该值包含回调页的ThreeDSNotificationURL。
已收到以下响应。
Status=3DAUTH
StatusDetail=StatusDetail=2021 : Please redirect your customer to the ACSURL, passing CReq.
VPSTxId={1F3F8015-FFEB-E897-0643-58841AD5DB03}
ACSURL=https://test.sagepay.com/3ds-simulator/html_challenge
CReq=ewogICJtZXNzY...iA6ICIwNSIKfQ我将VPSTxId值base64编码为threeDSSessionData值,并让客户浏览器自动提交以下表单
<form action="https://test.sagepay.com/3ds-simulator/html_challenge" method="post" id="autopostform">
<input type="hidden" name="threeDSSessionData" value="ezFGM0Y4MDE1LUZGRUItRTg5Ny0wNjQzLTU4ODQxQUQ1REIwM30=">
<input type="text" name="creq" value="ewogICJtZXNzY...iA6ICIwNSIKfQ">
</form>然后,客户将执行必要的gubbins操作,回调URL将包含类似以下内容的内容
cres=ewogICJtZXNzYWd...OiAiWSIKfQ
threeDSSessionData=ezFGM0Y4MDE1LUZGRUItRTg5Ny0wNjQzLTU4ODQxQUQ1REIwM30=这两个值都是base64编码的( cres实际上包含原始响应中的acsTransID )。现在我们需要将threeDSSessionData解码回一个VPSTxId,然后我们需要将它与(仍然编码的) cres值一起进行curl post。
VPSTxId={1F3F8015-FFEB-E897-0643-58841AD5DB03}
CRes=ewogICJtZXNzYWd...OiAiWSIKfQ希望这会给我们一个成功的响应,交易应该会通过。
简而言之,这是一个完整的皮塔。实际上,编码元素应该通过Opayo的API来处理,而不是我们自己编写代码。
编辑:原始回复
是!上周,我们浏览了3DSv2的v4,已经有几十个顾客报告他们试图付款,基本上就是回到了收银台。现在正在为巴克莱银行寻找一个,但也有其他的-包括一个他们3dauth和根本没有返回到我们的收银台……
https://stackoverflow.com/questions/67886233
复制相似问题