2010-11-18 2 views
1

저는 계좌 정보와 금액을 수령하여 계좌에서 돈을 인출하는 은행 웹 서비스를하고 있습니다. 응답으로 확인 메시지를 보냅니다 .오류 처리 웹 서비스

내가 찾고있는 것은 트랜잭션을 수행 할 수 있기 때문에 클라이언트 쪽에서 오류를 관리하는 방법이지만 클라이언트가 어떤 이유로 든 실패하면 돈이 손실되고 클라이언트 측 작업이 성공한? 예 : 은행 A - 기타, 은행 B - me. 한 사람이 은행 A로 가서 은행 B로부터 수표를 입금하므로 거래를하기 위해 웹 서비스를 사용하고 나는 인출하고 OK 메시지를 반환하지만 은행 A가 그 돈을 계좌에 추가하기 전에, 무언가이 실패합니다. 그래서 나는 지금 인출을 했지 만 은행 A가 거래를 실패했기 때문에 그 사람은 실제로 돈을 갖고 있지 않습니다.

+1

나는 정확하게 이해하고있다. 모든 거래는 서버 쪽에서 일어날 것이다. 클라이언트가 실패했다고 정확히 말할 때 당신은 무엇을 의미합니까? 클라이언트 측 작업이 최악의 경우 성공하지 못하면 서버 측 요청을 트리거하지 않으므로 손실 될 가능성은 없습니다. 나는 뭔가를 놓친거야 ?? – pinaki

+0

예제를 추가했습니다 : D – alfjos89

+0

자세한 내용은 여기를 참조하십시오. 구체적으로 말하면 정확히 무엇을 묻고 있습니까? 'try catch '와 같은 예외 처리? – Jakub

답변

1

본인이 알고있는 경우 웹 서비스를 사용하여 고객이 "은행"에서 인출 할 수있는 기능을 제공하고자합니다.

나는 거래를 시작하기 위해 서비스에 전화를 걸어 트랜잭션이 시작되었고 서비스에서 해당 금액이 인출 될 것으로 기대한다고 말합니다. 트랜잭션이 끝날 때까지 돈을 인출 할 수 없도록 잠그고 잠시 후에 트랜잭션이 자동으로 실패하므로 x 초 후에 트랜잭션이 자동으로 실패합니다.

클라이언트는 두 번째 "은행" . 다른 은행으로부터 금액이 추가되었다는 메시지를 받으면 시스템에서 서비스를 호출하여 거래를 "제출"하고 실제 금액을 인출합니다.

1

문제는 고객이 한 은행에서 돈을 꺼내 다른 은행에 송금한다고 믿는 것입니다. 정말? 시원한! 나는 API를 사용하여 많은 돈을 "받았다"고 주장하고 있습니다. Mwuahahahaha!

심각하게는 클라이언트가 수표를 받아이를 은행 A (API 호출)에 전달해야합니다. 그러면 은행 A가 은행 B에게 수표를 제시하고 자금을 확보합니다. (다른 API 호출). 그러면 고객이 은행 A에 연락하여 계정 잔액이 올라 갔는지 확인할 수 있습니다. 고객이 은행 B에 문의해야하는 시점이 없습니다. 그러면 클라이언트는 하나의 API 호출 만 수행하며 사용자의 경우처럼 시스템을 중단 할 수 없습니다.