2016-03-04 7 views
1

Я создаю приложение электронной коммерции, используя портал платежей eWay, и у меня возникла нечетная проблема.MVC Controller снова вызван после перенаправления на другой вид

В моей настройке для 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"); 
} 

Скрипач след:

enter image description here

Скрипач трассировки, показывающие заголовки запроса и ответа:

enter image description here

Примечание вызов /Purchase/Purchase, который перенаправляется на портал eWay, перед тем как туннель отправится в eWay, прежде чем вернуться к Purchase/PurchaseCallback дважды, прежде чем, наконец, доехать до /Purchase/Confirmation. Также обратите внимание на значок в первом вызове /PurchaseCallback, который указывает на прерывание сеанса. Однако я не знаю, почему это было бы прервано.

Нет связанных изображений для PurchaseCallback, а для Confirmation нет комментариев или нет. Я использую IIS Express, но я использую шаблон RedirectToAction во многих других местах без проблем.

Что вызовет мой метод контроллера, который будет вызываться дважды, и как я могу остановить его?

+0

Это будет полностью зависеть от кода на стороне клиента, который у вас есть – Rob

+0

@Rob, как я уже упоминал, нет кода на стороне клиента, который занимается переадресацией или другими запросами после возврата из eWay. – Steve

+0

Я не думаю, что мы можем видеть как входящие, так и исходящие пакеты на этой трассе? Можете ли вы показать нам обоих? –

ответ

3

Проверьте, включена ли опция «Переадресация после обработки платежа» в настройках общей страницы eWAY (doco here). Иногда это может вызвать вызов страницы перенаправления до/сразу после нажатия кнопки, что создаст два вызова (это особенно проблема, если для задержки установлено значение 5 секунд).

+0

Это был именно ответ, у меня даже была задержка, установленная на 5 секунд. – Steve

 Смежные вопросы

  • Нет связанных вопросов^_^