在开发购物车应用程序时, 假设用户单击付款按钮并请求到达服务器,但由于网络连接速度慢,页面未刷新。现在,如果用户认为点击没有响应并且第二次点击按钮,我们怎样才能避免重复付款?
答案 0 :(得分:0)
简单解决方案:禁用控件。 更好的解决方案:添加到隐藏的uuid操作字段,并检查在服务器端之前是否处理过操作。
答案 1 :(得分:0)
您可以在会话对象中设置属性,每当收到任何付款请求时,首先检查该会话的属性是否存在。如果是,则丢弃新的付款请求。
付款完成后,从会话中删除该属性。
HttpSession session = request.getSession();
if(session.getAttribute("Payment") == null){
session.setAttribute("Payment");
//Process your payment here
session.removeAttribute("Payment");
}else{
//Alert User that his payment is already in Process
//OR
//Do NOTHING
}