我正在使用eWay付款网关构建电子商务应用程序,而且我遇到了一个奇怪的问题。
在我的eWay设置中,我提供了支付网关的重定向网址,用于返回我的应用程序。这项工作正常,在回调方法结束时,我使用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追踪:
显示请求和响应标头的Fiddler跟踪:
请注意调用/Purchase/Purchase
,该电话重定向到eWay门户网站,然后重定向到eWay隧道,然后返回Purchase/PurchaseCallback
两次,最后到达/Purchase/Confirmation
。另请注意第一个/PurchaseCallback
电话上的图标,表示中止的会话。但是,我不知道为什么它会被中止。
PurchaseCallback
没有关联的视图,Confirmation
的视图没有JavaScript或其他请求。我正在使用IIS Express,但我在许多其他地方使用RedirectToAction
模式没有问题。
什么会导致我的控制器方法被调用两次,我怎么能阻止它发生呢?
答案 0 :(得分:3)
检查您是否在eway共享页面设置(doco here)中启用了“付款处理后重定向”选项。有时,这可以在您单击按钮之前/之后创建对重定向页面的调用,这将创建两个调用(如果延迟设置为5秒,这尤其是一个问题)。