Я работаю над проектом asp. net core MVC с интеграцией PayPal. После завершения платежа PayPal правильно перенаправляет на успешный URL-адрес (... / PayPal / PaymentSuccess). См. Метод, указанный ниже:
PayPalController
public class PayPalController
{
public IActionResult PaymentSuccess()
{
//code for business logic here
TempData["Amount"] = amount;
return RedirectToAction("PaymentCompleted", "Home");
}
}
HomeController
public class HomeController
{
public IActionResult PaymentCompleted()
{
var amount = Convert.ToDecimal(TempData["Amount"]);
//code for business logic here
return View();
}
}
Я пробовал оплатить с помощью PayPal в размещенной среде. После завершения платежа PayPal успешно активировал метод PaymentSuccess()
. В этом методе мы добавили бизнес-логи c для обновления базы данных. После этого нам нужно перенаправить на другую страницу "PaymentCompleted"
, чтобы показать сообщение об успешном платеже.
Проблема в том, что перенаправление на страницу просмотра «PaymentCompleted», которая находится в другом контроллере (HomeController
), не работает после успешного выполнения кода в методе PaymentSuccess.
Но я попытался вызвать метод PaymentSuccess()
прямо в браузере, и теперь перенаправление работает.
EDIT: Я использовал 'TempData'
on 'PaymentSuccess()'
метод передачи оплаченной суммы для отображения на странице просмотра 'PaymentCompleted'
.
Почему это происходит? Может ли кто-нибудь указать причину этой проблемы?
Любая помощь будет заметна. Спасибо!