付款完成后,限制用户返回

时间:2013-07-31 09:36:06

标签: javascript asp.net-mvc razor payment-gateway no-cache

  

我已将支持网关集成到我在MVC4中制作的Web应用程序中   剃刀。付款成功完成后,用户将被重定向   到返回网址..

     

然后我做了一些过程,比如生成唯一ID,发送付款   详细信息sms blah blah ..

[NoCache]
public ActionResult IPGResponse()
        {
            //Send SMS..
            //Save Payment Response..etc

            return RedirectToAction("ThankyouUploadDocument");
        }
  

然后我重定向到另一个Action。

public ActionResult ThankyouUploadDocument()
        {
            //Do Something

            return View("ThankyouUploadDocument" , paymentViewModel);
        }
  

问题是当用户回击时。它转到IPGResponse()并完成所有操作   再一步。

     

我也使用[NoCache] ..但它没有用

     

我必须限制用户返回IPGResponse()或Payment   网关再次..

1 个答案:

答案 0 :(得分:0)

这应该可以防止缓存:

        HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        HttpContext.Response.Cache.SetValidUntilExpires(false);
        HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        HttpContext.Response.Cache.SetNoStore();

并且在提交表单时也可能是服务器检查的好主意,并且在某些黑暗魔法缓存工作的情况下返回错误。它真的不应该。

修改 这将阻止浏览器的“后退”按钮加载缓存页面,这就是问题所在。 当然,您需要检查页面输入以查看交易是否已经发生。