我已将支持网关集成到我在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 网关再次..
答案 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();
并且在提交表单时也可能是服务器检查的好主意,并且在某些黑暗魔法缓存工作的情况下返回错误。它真的不应该。
修改强> 这将阻止浏览器的“后退”按钮加载缓存页面,这就是问题所在。 当然,您需要检查页面输入以查看交易是否已经发生。