让我解释一下我的情景。我的网站上有一些不同的产品,用户可以使用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();
}
任何能帮助我的想法和代码示例?
答案 0 :(得分:3)
当您向PayPal提供返回URL时,添加一个参数,告诉接收操作它来自哪个订单操作。
IE:http://www.mywebsite.com/PayPal/RedirectFromPaypal?type=orderAction
从评论中更新:
步骤:
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();
}
}