테마
Story: 결제 웹훅 처리
메타
| 항목 | 값 |
|---|---|
| Story ID | E-06-S-04 |
| Epic | E-06 PG사 이관 |
| 상태 | ready-for-dev |
| 우선순위 | P0 |
| 규모 | M |
| 담당 개발자 | 창훈 (수석) |
사용자 스토리
As a 시스템,
I want 토스페이먼츠에서 결제 결과를 웹훅으로 받고 싶다,
So that 결제 상태를 실시간으로 동기화할 수 있다.
수락 기준 (Acceptance Criteria)
AC-01: 웹훅 엔드포인트
| 항목 | 내용 |
|---|---|
| Given | 토스페이먼츠에서 결제 이벤트가 발생했을 때 |
| When | 웹훅이 전송되면 |
| Then | 서버에서 정상적으로 수신하고 처리한다 |
AC-02: 결제 완료 웹훅
| 항목 | 내용 |
|---|---|
| Given | PAYMENT_DONE 이벤트가 수신되면 |
| When | 웹훅을 처리할 때 |
| Then | 구독 상태가 활성화된다 |
AC-03: 서명 검증
| 항목 | 내용 |
|---|---|
| Given | 웹훅이 수신되었을 때 |
| When | 서명을 검증하면 |
| Then | 유효한 요청만 처리된다 |
태스크 분해
Task 1: 웹훅 API
- [ ] 1.1: POST /webhook/toss-payments 엔드포인트
- [ ] 1.2: 서명 검증 로직
- [ ] 1.3: 이벤트 타입별 핸들러
Task 2: 이벤트 처리
- [ ] 2.1: PAYMENT_DONE - 결제 완료
- [ ] 2.2: PAYMENT_CANCEL - 결제 취소
- [ ] 2.3: BILLING_KEY_DELETED - 카드 삭제
Task 3: 에러 처리
- [ ] 3.1: 중복 웹훅 처리 (idempotency)
- [ ] 3.2: 실패 시 재시도 대응
생성일: 2026-01-20
