如何防止使用servlet构建的购物车应用程序中的重复付款?

时间:2014-11-26 19:18:39

标签: java servlets

在开发购物车应用程序时, 假设用户单击付款按钮并请求到达服务器,但由于网络连接速度慢,页面未刷新。现在,如果用户认为点击没有响应并且第二次点击按钮,我们怎样才能避免重复付款?

2 个答案:

答案 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
 }