2010-11-18 105 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调用,并且不能像他们那样破坏系统。