【发布时间】:2016-06-17 15:27:16
【问题描述】:
我正在使用eWay 支付门户构建电子商务应用程序,但遇到了一个奇怪的问题。
在我的 eWay 设置中,我为支付网关提供了一个重定向 URL,用于返回我的应用程序。这可以正常工作,并且在回调方法结束时我使用RedirectToAction 重定向到Confirmation 视图。
但是,回调方法完成后,会再次调用它。只有第二次重定向到我的确认页面才能正确完成。
在 Fiddler 中,我似乎从我的回调方法对我的确认视图得到了正确的 302 响应,但是我得到了一个图标,即 Session was aborted by the client, Fiddler, or the Server。请注意,当 Fiddler 关闭时,这仍然会发生。
我的回调方法:
public ActionResult PurchaseCallback(string accessCode)
{
// payment processing
.....
return RedirectToAction("Confirmation");
}
public ActionResult Confirmation()
{
return View("Confirmation");
}
提琴手踪迹:
显示请求和响应标头的 Fiddler 跟踪:
注意对/Purchase/Purchase 的调用会重定向到eWay 门户,在隧道本身之前,在返回Purchase/PurchaseCallback 之前两次,最后到达/Purchase/Confirmation。还要注意第一个/PurchaseCallback 调用上的图标,它表示会话已中止。但是我不知道为什么会中止。
PurchaseCallback 没有关联的视图,Confirmation 的视图没有 JavaScript 或其他请求。我正在使用 IIS Express,但我在许多其他地方使用 RedirectToAction 模式没有问题。
什么会导致我的控制器方法被调用两次,我该如何阻止它发生?
【问题讨论】:
-
这完全取决于您拥有的客户端代码
-
@Rob,正如我所提到的,从 eWay 返回后,没有处理重定向或其他请求的客户端代码。
-
我认为我们不能在该跟踪上同时看到入站和出站数据包,对吧?你能告诉我们两个吗?
-
@JohnPeters 我不确定你的意思。突出显示的请求来自 eWay,并在响应中显示重定向到正确页面。
-
跟踪只向我们显示对服务器的入站请求,我们看不到响应。
标签: c# asp.net-mvc redirect controller http-status-code-302