2014-02-14 141 views
0

在我的MVC项目中,我需要向支付提供商处理一些费用。我有一个工作流程,用户选择不同的程序并计算费用。在支付点上,我查看了哪些地方生成了用户点击并转到支付网关的URL。该链接有一些网关所需的JSON对。但是,当用户单击链接时,我想在具有UserId和TransactionId的交易表中创建新记录,以便我可以在支付网关将其返回给我时跟踪该交易。从视图中的链接调用MVC控制器操作

所以在我看来,我有这样的事情(简体):

{ 
    int TotalFees = (some fee calculation) 
    string url = "{my JSON string goes here}"; 
    <a href="https://xyz.com/[email protected]">Pay By Credit Card/e-Check ([email protected]).</a> 
} 

注:xyz.com是外部支付网站。

我在一个控制器中创建了一个动作方法,但是如果我发布到另一个网站,我该如何从链接点击调用这个控制器?我如何拦截用户点击外部链接并调用控制器?我应该使用按钮并使用该方法重定向到支付提供商来执行此JavaScript吗?

另一种方法是在控制器中进行整个费用计算,而不是视图,但是由于我想收集视图上的用户输入以计算要收取的费用,因此存在问题。

回答

0

你可以做一个HTML动作链接到你的控制器,而不是直接发布到最终站点。那么在你的控制器行动中做这个职位?

+0

是的,谢谢。我想弄清楚如何将前一个视图中的一些值传递给我的控制器,然后发布到外部网站。 – SKale

0

我会建议一个不同的设计。看起来,预先创建事务对象/数据并/或将其附加到您在订购工作流程中用于构建订单的任何对象都是有意义的。然后,您可以在订单完成后管理其数据/状态(并且由于可能没有完成付款,因此处于某种待定状态的交易将会很好)。简单而干净。看起来你很有可能以现在的方式将业务逻辑视为你的观点,尤其是如果你在那里进行费用计算的话。

+0

我同意你的意见。最初我曾想跟踪交易(给它一个ID等),并给它一个悬而未决的标志。但我认为,如果用户查看费用并点击后退按钮,交易将成为孤儿,我想避免这种情况。我想没有办法避免它。谢谢。 – SKale

相关问题