最近遇到一个奇怪的问题,客户用QQ浏览器下单时,总是会出现重复的多笔订单,咨询询问了客户,未发现客户有手动刷新。经过我们多方测试,发现QQ浏览器在打开某个url连接时,会在10秒后把该url在后台(不可见)再次打开一次,造成订单重复。以下方案可以解决此问题,同时可以防止人工刷新页面导致重复下单的问题,方案如下:
1、在订单发起页面设置一个cookie
if(!isset($_COOKIE["buyForm"])){ob_start();setcookie("buyForm","yes",time()+3600*8);}
2、在订单入库页面验证这个cookie,伪码如下
if(isset($_COOKIE["buyForm"])&&$_COOKIE["buyForm"]=="yes"){
ob_start();
setcookie("buyForm","",time()-10000);
订单入库
);
}else{
请不要重复提交订单
}
3、经过多次测试,该代码有效