从我的 java web 应用程序,我正在重定向到用于信用卡支付的 paypal 支付网关页面,并且在成功验证后,如果用户在 paypal 页面上单击两次确认按钮,两个请求将返回到我的 Struts 1 操作和由于该系统为用户抛出应用程序异常,同时付款从信用卡中扣除。我想接受第一个请求并停止第二个请求。如果有人遇到并解决了这个问题,请告诉我。
最佳答案
您需要使用 token 的概念。请注意,这不是一个完全有效的代码解决方案。
在加载 JSP 表单的 Action 类中创建并保存交易 token
saveToken(请求)
检查 token 在处理表单提交的操作中是否有效
if (isTokenValid(request, true)) { 处理请求(); } 别的 { 返回 mapping.findForward("invalidToken"); }
这里有一些关于 Struts1 中 token 的更多信息: https://svn.apache.org/repos/asf/struts/archive/trunk/struts-doc-1.1/api/org/apache/struts/util/TokenProcessor.html
关于paypal - 我使用 paypal 进行信用卡支付,如果用户点击确认按钮两次,就会返回两个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45209097/