2010-11-18 177 views
1

我正在做一個銀行網絡服務,爲大學項目,它接收帳戶信息和金額,所以我們從帳戶中提取錢,作爲迴應,我們發送確認消息。錯誤處理網絡服務

我在找什麼是如何管理客戶端的錯誤,因爲我可以做我的交易,但如果由於任何原因客戶端失敗,這筆錢丟失了,我怎麼知道客戶端操作是成功?

- 編輯 - 例如: 銀行A - 其他銀行B - 我。 一個人前往A銀行存入B銀行的支票,因此他使用我的網絡服務進行交易,然後我退出並返回OK消息,但在A銀行設法將款項添加到賬戶之前, 東西失敗。所以現在我做了撤銷,但這個人並沒有真正的錢,因爲A銀行沒有交易。

+1

不知道我的理解是否正確..所有交易都會發生在服務器端不會嗎?當你說客戶失敗時,你的意思是什麼?如果客戶端操作不成功,最壞的情況是,它不會觸發服務器端請求,從而消除任何丟失金錢的機會。我錯過了什麼? – pinaki 2010-11-18 15:55:45

+0

我加了一個例子:D – alfjos89 2010-11-18 16:16:47

+0

這裏需要更多的細節,請更具體一點,你到底在問什麼?處理像try catch這樣的異常? – Jakub 2010-11-18 16:17:54

回答

1

如果我明白了,您希望使用Web服務爲客戶提供從您的「銀行」撤出的能力。

我會讓它成爲事務性的,比如他們打電話給服務開始提款,然後你確認交易已經開始,並且你的服務期望這筆款項被提取。 (也許鎖定這筆錢,直到交易結束時纔可以提取,並且計時,所以交易在x秒後自動失敗)

然後客戶做任何有關該信息的事情,比方說第二個「銀行」 。當他們收到來自其他銀行的消息並說明已添加金額時,他們會與您的系統聯繫以「提交」交易,實際提取金額。

1

問題是你相信客戶從一家銀行取錢並將其存入另一家銀行。真?涼!我打算做一些API調用,聲稱我剛剛「收到」了很多錢。 Mwuahahahaha!

嚴重的是,客戶應該接受檢查並將其提交給銀行A(一個API調用)。銀行A然後將支票提交給B銀行並獲得資金。 (另一個API調用)。然後,也許客戶可以聯繫A銀行以驗證他們的賬戶餘額已經增加。在任何時候,客戶端都不應該聯繫B銀行。然後,客戶端只會進行一次API調用,並且不能像他們那樣破壞系統。