2014-02-14 140 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

相關問題