是否可以记住MVC 5中以前的重定向操作
本文关键字:重定向 操作 MVC 是否 | 更新日期: 2023-09-27 18:19:35
让我解释一下我的场景。我的网站上有一些不同的产品,用户可以使用PayPal购买。我已经将PayPal配置为与我的网站协同工作,并且在我的Web.config
文件中有这样的内容,用于从PayPal:重定向
<add key="return" value="http://www.mywebsite.com/PayPal/RedirectFromPaypal" />
所以,重点是,对于每种不同的产品,一旦付款完成,我需要做一些不同的事情。首先,我需要写入数据库,另一方面,我需要进行一些计算并将其显示给用户,最后一个需要发送电子邮件。
重点是,当用户按下订单按钮时,无论是哪种产品类型,他/她都会被重定向到PayPal以完成订单,一旦用户完成订单,就会被重定向回PayPal/RedirectFromPaypal
视图。但是,正如我之前所说,对于不同的产品类型,我有不同的要求,因此,我需要以某种方式知道是哪个订单操作启动了订单,然后当我达到RedirectToPaypal方法时,我可以采取相应的行动。有可能以某种方式记住它吗?还请注意,我使用此教程将我的应用程序与PayPal连接。还要注意,对于三种不同的订单类型,我有三个不同的操作方法。
类似这样的东西:
public ActionResult ValidateCommand(string product, string totalPrice)
public ActionResult ValidateCommandAd(Ad ad)
public ActionResult ValidateCommandSearch(Search search)
每个特定的操作都是为每个特定的产品订单调用的。在内部,我只是为PayPal设置了一些值,然后将用户重定向到PayPal。然后,当涉及到下面的操作时,我想知道之前调用了哪个操作,我的意思是在重定向到PayPal并从PayPal返回到NotifyFromPaypal之前,这样我就可以在下面的操作中进行相关编码:
public ActionResult NotifyFromPaypal()
{
return View();
}
有什么想法和代码示例可以帮助我吗?
当您给PayPal返回URL时,添加一个参数,告诉接收操作它来自哪个订单操作。
IE:http://www.mywebsite.com/PayPal/RedirectFromPaypal?type=orderAction
评论更新:
步骤:
- 用户在您的系统中创建订单
- 您将它们重定向到PayPal进行支付,并为PayPal提供带有"订单操作类型"的新参数的回调URL。
- 注意:您可以添加任意数量的参数,以便在回调时识别订单<记住这是一个粗略的例子>
记住这是一个粗略的例子>
- 注意:您可以添加任意数量的参数,以便在回调时识别订单<记住这是一个粗略的例子>
- 编写一个使用该请求的控制器操作。
public class PayPal : Controller
{
[HttpGet]
public ActionResult RedirectFromPaypal(string type)
{
// PayPal calls this action on order completion.
// I made "type" a string for this example but it can be anything.
// Add other parameters as needed.
// Processing, etc.
return View();
}
}