【发布时间】:2016-02-26 16:37:11
【问题描述】:
我对 SagePay 还很陌生,所以对此有一些建议会很棒。我超出了您插入卡详细信息的部分,实际上我在 SagePay 要求 3DSecure 密码验证之后的步骤。
现在文档指定我们需要一个自动提交到 ACSURL 的表单,该表单由 PaReq 和 MD 字段组成(通过帖子)。
下面是我的输出的图像。
现在,这看起来就像任何 sagepay 工具包为此特定步骤提供的任何演示版一样,提交表单后,我希望被重定向到要在此 url 填写的表单:https://test.sagepay.com/mpitools/accesscontroler?action=pareq
但是,如果我手动发送表单(从 iframe 外),我收到的只是一个空白的白屏,而每当表单在 iframe 内自动提交时,我收到的只是一个 404。
我在这里遗漏了什么吗?因为我应该在回扣之前的密码插入部分,以便我更新订单以完成。
这是我在视图文件中调用 IFrame 的地方:
<div class="row">
<div class="col-xs-12">
<iframe src="/cart/iframe?ACSURL=<?=trim(htmlentities($ACSURL))?>&PaReq=<?=trim(htmlentities($PaReq))?>&vendorTxCode=<?=$vendorTxCode?>&MD=<?=trim(htmlentities($MD))?>" name="3DIFrame" id="3DIFrame" width="100%" height="500" frameborder="0"></iframe>
</div>
</div>
如果有帮助的话,这里是我传入 IFrame 的代码:
<script>
function OnLoadEvent() {
document.form.submit();
}
</script>
<html>
<head>
<title>3D Secure Verification</title>
</head>
<body OnLoad="OnLoadEvent()">
<form name="cardToken" action="<?=$_GET['ACSURL']?>" method="post">
<input type="hidden" name="MD" value='<?=$_GET['MD']?>' />
<input type="hidden" name="PaReq" value='<?=$_GET['PaReq']?>' />
<input type="hidden" name="TermUrl" value='<?=trim(htmlentities('http://localhost/cart/complete_3d?vendorTxCode='.$_GET['vendorTxCode']))?>' />
<button type="submit btn btn-primary">Submit</button>
<noscript>
<div style="text-align: center; margin: 0 auto;">
<p>Please click button below to Authenticate your card</p>
<input type="submit" value="Go"/>
</div>
</noscript>
</form>
</body>
</html>
谢谢
【问题讨论】: