|
|
1
1
向后端系统添加某种同步机制,以便在任何一个时间点上,只有一个线程可能正在处理“要充电”的记录到基础数据源中。在此同步区域内,添加一个检查以确保数据源中不存在即将处理的费用。如果确实发生了这样的错误,请确保向客户输出某种优雅的消息——至少在后端不会致命。 它也有助于在用户界面级别添加第二层保护,正如codetoglory所建议的那样。这将最小化发生这种情况的次数。 |
|
|
2
8
您可以生成一个唯一的值,并将其隐藏在一个表单中。在您向信用卡收费之前,请确保尚未处理此唯一值。这加上codetoglory禁用按钮的建议应该可以解决这两个用例。 |
|
|
3
4
几种方式:
|
|
|
4
3
大多数银行都要求你提供 独特的 订单号,所以同一订单不可能收取两次费用。 现在,如果您要求防止重复提交,标准方法是 Post/Redirect/Get pattern . 您也可以将其与禁用提交按钮和JavaScript结合起来。 你会有:
现在,如果用户单击“重新加载”,则只重新加载静态
|
|
|
5
0
订购后立即移除购物篮项目,并禁用“提交”按钮。 在这种情况下,即使用户回来,刷新等不能购买两次,因为篮子里将没有任何东西可以购买。 |
|
|
6
0
您可以在客户进入第一个签出页面时创建会话,然后在按下提交按钮时强制会话超时。这样客户就必须重新开始结帐过程。 |