支付宝支付时提示“长时间没操作,请重新发起请求”的错误处理
此问题仅限于老版本中用iframe提交所产生的错误!
在app项目中遇到了这个问题(虽然是app项目,但是还是使用的网站支付):支付宝支付的时候,输入完支付密码,提示“由于您长时间没有操作,请重新发起请求。”
如图:
但是从浏览器中进行支付就没问题,可以进行支付,当时也很懵,不知道哪里出了问题,查看文档,说是不能用iframe嵌套支付宝支付页,应该用form表单提交,这个解释是合理的,但是代码怎么写呢?分析代码的意思,其实也很简单,直接上代码,使用时替换即可。
找到ifrems.PHP文件
原来的iframe嵌套是这样写的:
<body>
<iframe id="cti" src="'.$_POST['tourl'].'" frameborder="0" scrolling="auto" style="background-color: #fff;border: 0px solid red;padding-top: 0px;margin-top: 0px;margin:0px;padding: 0px;top:0;width: 100%;"></iframe>
</body>
把这个body替换为下面的代码就可以了:
<body onload="document.forms[0].submit();">
<form id="form" name="form" action="'.$_POST['tourl'].'" style="background-color: #fff;border: 0px solid red;padding-top: 0px;margin-top: 0px;margin:0px;padding: 0px;top:0;width: 100%;" type="text/x-srciptlet" method="post"></form>
</body>