我正在升级sagepay(opayo)直接从2.23到4.0。升级后,3d安全页面不会在活动模式下打开。
我使用了sagepay直接模式。在给出卡的详细信息后,得到了"Status=3DAUTH“。然后,我重定向到另一个页面,在那里3d安全页面将在iframe中打开。
测试模式检查中的:在完全实现后,我已经在测试模式中进行了测试。在测试模式下,成功地出现了“质询”页面并成功地对其进行了验证。付款也成功了。
实时模式测试:当我用soldo虚拟卡在活动模式下测试时,成功地打开了3d安全页面。在批准从soldo应用程序付款后,付款是成功的。一切都完成了。
现在,当我尝试美国运通卡时,它显示了3d安全页面加载屏幕,然后给出了下面的错误。
Oops ! An error occurred!!!
Internal processing Error..!!!现在我试着用万事达卡付款。在这种情况下,当我重定向到3d安全页面时。没有任何东西会出现在iframe中。它被卡住了。
当我尝试第一次呼叫时,我已经发送了下面的对角线。
$strPost = $strPost . "&Apply3DSecure=0";
$strPost = $strPost . "&AccountType=E";
$strPost = $strPost . "&BrowserAcceptHeader=text/html,application/xhtml+xml,application/xml&BrowserColorDepth=24&BrowserJavaEnabled=1&BrowserJavascriptEnabled=1&BrowserLanguage=en-GB&BrowserScreenHeight=1080&BrowserScreenWidth=1920&BrowserTZ=%2B300&BrowserUserAgent=Mozilla&ChallengeWindowSize=01";
$strPost = $strPost . "&ThreeDSNotificationURL=".$strYourSiteFQDN."3DCalBack.php?pagename=transactionRegistration.php&VendorTxCode=".$strVendorTxCode;
$strPost = $strPost ."&COFUsage=FIRST&InitiatedType=CIT&MITType=UNSCHEDULED";ACSURL提交表格
<form name="form" action="{$ACSURL}?creq=".$strCReq" method="POST">
<input type="hidden" name="PaReq" value="{$strPAReq}"/>
<input type="hidden" name="creq" value="{$strCReq}"/>
<input type="hidden" name="TermUrl" value="{$TermUrl}?VendorTxCode={$strVendorTxCode}"/>
<input type="hidden" name="MD" value="{$strMD}"/>
<input type="hidden" name="VPSTxId" value="{$strVPSTxId}"/>
<input type="hidden" name="mode" value="secure3d"/>
</form>请帮我得到固定的3d安全页面。
发布于 2022-09-21 03:40:59
首先,确保这不是一个无摩擦的身份验证。来自文档
对于无摩擦认证,3D安全方案拥有足够的关于持卡人的信息,以提供即时的身份验证结果。当认证过程完成后,事务将提交授权。
也就是说,需要请求代码并将其重定向到三维安全页面(或者在iframe中显示)。如果有必要,您可以在对Apply3DSecure=1的初始请求中使用SagePay参数,以便始终强制进行三维安全检查。
其次,对于三维安全v2重定向,表单字段的列表应该是:
<form action="{$ACSURL}" method="post">
<input type="text" name="ACSTransID" value="{$strACSTransID}" />
<input type="text" name="creq" value="{$strCReq}" />
<input type="text" name="TermUrl" value="{$TermUrl}?VendorTxCode={$strVendorTxCode}" />
</form>所有数据都应该是后期发布的,您应该从响应到初始请求的过程中包含ACSTransID值。注意:字段PaReq和MD与三维安全v1相关.如果出于某种原因,您希望保持向后兼容性,那么您当前的集成应该是很好的。在这种情况下,您可以检查初始请求的响应:
CReq和ACSTransID字段,那么SagePay需要通过v2协议进行通信。PaReq和MD字段,那就是v1协议然而,3D安全v1将于2022年10月15日被撤回.所以很显然,保持向后兼容性是不必要的。
https://stackoverflow.com/questions/73731694
复制相似问题