2016-03-04 44 views
1

我正在使用eWay支付門戶構建電子商務應用程序,我遇到了一個奇怪的問題。MVC控制器重定向到另一個視圖後再次調用

在我的eWay設置中,我給出了支付網關的重定向網址,以便用於回到我的應用程序。這工作正常,並在回調方法結束時我使用RedirectToAction重定向到Confirmation視圖。

但是,回調方法完成後,它會再次被調用。只有第二次將重定向到我的確認頁面才能正確完成。

尋找提琴手我似乎得到了一個正確的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跡:

enter image description here

的Fiddler跟蹤示出請求和響應頭:

enter image description here

注調用/Purchase/Purchase重定向到eWay門戶,在通往eWay本身之前,在返回Purchase/PurchaseCallback兩次之前,最終到達/Purchase/Confirmation。還請注意第一個/PurchaseCallback調用中的圖標,該圖標表示中止的會話。但我不知道爲什麼它會被中止。

沒有關聯的視圖爲PurchaseCallbackConfirmation的視圖沒有JavaScript或其他請求。我使用的是IIS Express,但我在其他許多地方使用RedirectToAction模式沒有問題。

什麼會導致我的控制器方法被調用兩次,我該如何阻止它發生?

+0

這完全取決於客戶端代碼 – Rob

+0

@Rob,正如我所提到的,在從eWay返回後,沒有處理重定向或其他請求的客戶端代碼。 – Steve

+0

我不認爲我們能夠在該跟蹤中看到入站和出站數據包嗎?你能告訴我們兩個嗎? –

回答

3

檢查您是否在eWAY共享頁面設置(doco here)中啓用了「支付後重定向處理」選項。有時這可以在點擊按鈕之前/之後創建對重定向頁面的調用,這會創建兩個調用(如果延遲設置爲5秒,這尤其是個問題)。

+0

這正是答案,我甚至將延遲設置爲5秒。 – Steve

相關問題