WEBBOOK CHAPTER

외부 인터페이스 엔지니어링: 40장. Payment Unknown Outcome을 대사한다

40장. Payment Unknown Outcome을 대사한다

charge request 뒤 timeout이면 실패가 아니라 결과 미확정일 수 있다. 새 idempotency key로 다시 결제하지 않고 원 key·merchant order id로 조회한다. local order, payment attempt, provider receipt, refund/adjustment를 상태 기계로 관리한다. 사용자에게 “다시 결제”보다 상태 확인을 제공한다.

commit 응답 단절, provider 성공 뒤 webhook 지연, duplicate callback을 주입한다. 최종 조건은 charge 1건, order amount, receipt와 ledger 대사다. 수동 DB update보다 승인된 reconcile command와 audit를 사용한다.