【问题标题】:Is it possible to remember the previous redirect action in MVC 5?是否可以记住 MVC 5 中的先前重定向操作?
【发布时间】:2014-10-20 10:08:20
【问题描述】:

让我解释一下我的情况。我的网站上有一些不同的产品,用户可以使用 PayPal 购买它们。我已经将 PayPal 配置为与我的网站一起使用,并且我的 Web.config 文件中有类似的内容用于从 PayPal 重定向:

<add key="return" value="http://www.mywebsite.com/PayPal/RedirectFromPaypal" />

所以,关键是,对于每种不同的产品,一旦付款完成,我需要做一些不同的事情。一方面,我需要写入数据库,另一方面,我需要做一些计算并显示给用户,最后一个我需要发送电子邮件。

关键是,当用户按下订单按钮时​​,无论是哪种产品类型,他/她都会被重定向到 PayPal 以完成订单,一旦用户完成订单,就会被重定向回 PayPal/RedirectFromPaypal 视图。但是,正如我之前所说,对于不同的产品类型,我有不同的要求,因此,我需要以某种方式知道是哪个订单操作发起了订单,然后当我到达 RedirectToPaypal 方法时,我可以采取相应的行动。有可能以某种方式记住它吗?另请注意,我使用此 tutorial 将我的应用程序与 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();
    }

有什么想法和代码示例对我有帮助吗?

【问题讨论】:

    标签: c# asp.net-mvc paypal


    【解决方案1】:

    当您向 PayPal 提供返回 URL 时,添加一个参数,该参数将告诉接收操作它来自哪个订单操作。

    IE:http://www.mywebsite.com/PayPal/RedirectFromPaypal?type=orderAction


    来自 cmets 的更新:

    步骤:

    1. 用户在您的系统中创建订单。
    2. 您将他们重定向到 PayPal 进行付款,并为 PayPal 提供带有“订单操作类型”的新参数的回调 URL。
      • 注意:您可以根据需要添加任意数量的参数来识别回调时的订单。 记住这是一个粗略的例子。

    3. 编写一个使用该请求的控制器操作。

    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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多