# QA Report - Redmine #3315 (dev)

- Generated: 2026-05-22T11:44:32+09:00
- Redmine: https://itsm.bix.bz/issues/3315
- Subject: [QA] 영수증 조회 V2 API와 PG별 영수증 URL 통합 검증
- Status: BLOCKED
- Result JSON: artifacts/result-summary.json
- Roles: ADMIN -> VE
- Route Candidates: not recorded

## Scope

dev ADMIN/VE 계정으로 store 수기결제 1004원 결제 후 영수증 조회, 운영자 영수증 조회, 거래 ID 후속 흐름, 실패 처리, PG 취소를 확인. 링크결제는 요청자 추가 지시에 따라 이번 QA 범위에서 제외한다.

## Checklist

1. 스토어 거래내역에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인
2. 운영자 거래 목록 또는 거래 상세에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인
3. 여러 PG 거래에서 영수증 버튼을 눌렀을 때 각 PG에 맞는 영수증 화면이 열리는지 확인
4. 영수증을 열 수 없는 거래에서는 화면에 실패 메시지가 표시되고 빈 새 창이나 깨진 화면으로 이동하지 않는지 확인
5. 수기결제 성공 후 화면 또는 응답 처리 흐름에서 거래 ID를 사용한 후속 동작이 정상 진행되는지 확인
6. 결제 실패 시 거래 ID가 없는 상태에서도 실패 메시지와 실패 처리 화면이 정상 표시되는지 확인

## Setup Steps

1. [required] 수기결제 카드 정보 로컬 설정 (store/VE / kind: manual-precondition) - QA_3315_CARD_NUMBER, QA_3315_CARD_EXPIRY, QA_3315_CARD_PASSWORD, QA_3315_CARD_BIRTH, QA_3315_PAYMENT_AMOUNT를 .env.local에만 설정한다. 카드 정보는 report와 git 산출물에 남기지 않는다.
2. [required] 검증 후 PG 취소 (admin/ADMIN / kind: state-verify / mutation: temporary / guard: QA_3315_ALLOW_PAYMENT_MUTATION / restore: required) - 스토어 수기결제 성공 거래는 영수증 확인 후 운영자 거래내역에서 PG 취소까지 완료한다. 중간 실패 시에도 afterAll 보정 단계에서 취소를 재시도한다.

## Source Text

주홍석님의 QA 요청입니다\n조지민 프로님 안녕하세요, 비스킷 링크 개발계 QA 요청드립니다\n[1] QA 요청 배경\n- https://itsm.bix.bz/issues/3315\n- 영수증 조회 V2 API와 PG별 영수증 URL 통합, 결제 완료 응답 거래 ID 전달 개발계 검증 요청\n[2] 사전 데이터\n- 개발계에서 영수증 확인이 가능한 결제 완료 거래 준비\n- 스토어 화면과 운영자/공통 거래 화면에서 확인할 수 있는 여러 PG 거래 준비\n- 결제 성공 응답에서 거래 ID를 확인할 수 있는 수기결제 또는 링크결제 테스트 데이터 준비\n[3] 사전 작업\n- 가맹점 계정으로 스토어 거래내역과 결제 화면 접근 가능 여부 확인\n- 운영자 계정으로 거래 목록, 거래 상세, 영수증 확인 화면 접근 가능 여부 확인\n[4] 권한별 테스트\n- admin\n- ve\n[5] 검증 대상\n- 스토어 거래내역 영수증 확인 화면\n- 운영자 거래 목록 및 거래 상세 영수증 확인 화면\n- 수기결제 완료 화면\n- 링크샵 결제 완료 화면\n[6] 체크리스트\n- 스토어 거래내역에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인\n- 운영자 거래 목록 또는 거래 상세에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인\n- 여러 PG 거래에서 영수증 버튼을 눌렀을 때 각 PG에 맞는 영수증 화면이 열리는지 확인\n- 영수증을 열 수 없는 거래에서는 화면에 실패 메시지가 표시되고 빈 새 창이나 깨진 화면으로 이동하지 않는지 확인\n- 수기결제 성공 후 화면 또는 응답 처리 흐름에서 거래 ID를 사용한 후속 동작이 정상 진행되는지 확인\n- 링크샵 결제 성공 후 주문 완료 안내와 후속 화면 이동이 기존처럼 정상 동작하는지 확인\n- 결제 실패 시 거래 ID가 없는 상태에서도 실패 메시지와 실패 처리 화면이 정상 표시되는지 확인\n\n결제는 스토어에서 수기결제를 통해 진행\n카드번호는 env에 넣고 commit대상에서 제외\n결제금액은 1004원으로 고정\n확인 이후에는 무조건 PG 취소를 진행해야함\n카드 정보는 .env.local의 QA_3315_* 변수에서만 읽고 report에는 마스킹한다.

## Execution Summary

- Passed: 6
- Failed: 0
- Skipped: 0
- Blocked: 1
- Flaky: 0
- Duration: 69643ms

## 한눈에 보는 결과

| 확인한 항목 | 계정 | 화면 | 수행한 동작 | 결과 | 증거 자료 |
|---|---|---|---|---|---|
| 수기결제 성공 후 화면 또는 응답 처리 흐름에서 거래 ID를 사용한 후속 동작이 정상 진행되는지 확인 | VE | 스토어 수기결제 | VE 계정으로 스토어 수기결제를 완료하고 응답의 거래 ID와 완료 화면을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/01-스토어-수기결제-VE-payment-success.png)<br>[실행 기록 1](artifacts/logs/01-스토어-수기결제-VE-payment-success.md) |
| 결제 실패 시 거래 ID가 없는 상태에서도 실패 메시지와 실패 처리 화면이 정상 표시되는지 확인 | VE | 스토어 수기결제 | VE 계정으로 결제 실패 응답에서 거래 ID 없이도 실패 메시지가 표시되는지 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/02-스토어-수기결제-VE-payment-failure.png)<br>[실행 기록 1](artifacts/logs/02-스토어-수기결제-VE-payment-failure.md) |
| 스토어 거래내역에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인 | VE | 스토어 거래내역 | VE 계정으로 스토어 거래내역에서 영수증 버튼을 누르고 새 창 표시 여부를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/03-스토어-거래내역-VE-receipt-popup.png)<br>[실행 기록 1](artifacts/logs/03-스토어-거래내역-VE-receipt-popup.md) |
| 운영자 거래 목록 또는 거래 상세에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인 | ADMIN | 운영자 거래내역 | ADMIN 계정으로 운영자 거래내역에서 승인번호 또는 영수증 버튼을 누르고 새 창 표시 여부를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/04-운영자-거래내역-ADMIN-receipt-popup.png)<br>[실행 기록 1](artifacts/logs/04-운영자-거래내역-ADMIN-receipt-popup.md) |
| 여러 PG 거래에서 영수증 버튼을 눌렀을 때 각 PG에 맞는 영수증 화면이 열리는지 확인 | ADMIN | 운영자 거래내역 | ADMIN 계정으로 서로 다른 PG 거래의 영수증을 열어 PG별 URL 연결 여부를 확인 | 확인을 끝내지 못했습니다: skip: BLOCKED: 현재 조회 범위에서 생성 거래와 다른 PG의 영수증 확인 가능 거래를 찾지 못했습니다. | [스크린샷 1](artifacts/screenshots/05-운영자-거래내역-ADMIN-multi-pg-blocked.png)<br>[실행 기록 1](artifacts/logs/05-운영자-거래내역-ADMIN-multi-pg-blocked.md) |
| 영수증을 열 수 없는 거래에서는 화면에 실패 메시지가 표시되고 빈 새 창이나 깨진 화면으로 이동하지 않는지 확인 | ADMIN | 운영자 거래내역 | ADMIN 계정으로 영수증 조회 실패 응답에서 화면 메시지와 새 창 차단 여부를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/06-운영자-거래내역-ADMIN-receipt-failure.png)<br>[실행 기록 1](artifacts/logs/06-운영자-거래내역-ADMIN-receipt-failure.md) |
| 검증 거래 PG 취소 완료 | ADMIN | 운영자 거래내역 | ADMIN 계정으로 검증에 사용한 수기결제 거래를 PG 취소하고 원거래 상태를 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/07-운영자-거래내역-ADMIN-pg-cancel.png)<br>[실행 기록 1](artifacts/logs/07-운영자-거래내역-ADMIN-pg-cancel.md) |

## 실패 또는 확인 불가 상세

### 1. ADMIN / 운영자 거래내역 / 확인 불가

- 체크 항목: 여러 PG 거래에서 영수증 버튼을 눌렀을 때 각 PG에 맞는 영수증 화면이 열리는지 확인
- 수행한 동작: ADMIN 계정으로 서로 다른 PG 거래의 영수증을 열어 PG별 URL 연결 여부를 확인
- 기대 결과: 여러 PG 거래에서 각 PG에 맞는 영수증 화면이 열려야 합니다.
- 실제 결과: 확인을 끝내지 못했습니다: skip: BLOCKED: 현재 조회 범위에서 생성 거래와 다른 PG의 영수증 확인 가능 거래를 찾지 못했습니다.
- 분류: 확인 조건 부족
- 오류 내용: skip: BLOCKED: 현재 조회 범위에서 생성 거래와 다른 PG의 영수증 확인 가능 거래를 찾지 못했습니다.
- 스크린샷: [스크린샷 1](artifacts/screenshots/05-운영자-거래내역-ADMIN-multi-pg-blocked.png)
- 화면 재현 기록: 없음
- 실행 기록: [실행 기록 1](artifacts/logs/05-운영자-거래내역-ADMIN-multi-pg-blocked.md)



## 수동 재현 필요

- 수동 재현이 필요한 항목이 없습니다.

## 스크린샷

- VE / 스토어 수기결제 / 수기결제 성공 후 화면 또는 응답 처리 흐름에서 거래 ID를 사용한 후속 동작이 정상 진행되는지 확인: [스크린샷 1](artifacts/screenshots/01-스토어-수기결제-VE-payment-success.png)
- VE / 스토어 수기결제 / 결제 실패 시 거래 ID가 없는 상태에서도 실패 메시지와 실패 처리 화면이 정상 표시되는지 확인: [스크린샷 1](artifacts/screenshots/02-스토어-수기결제-VE-payment-failure.png)
- VE / 스토어 거래내역 / 스토어 거래내역에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인: [스크린샷 1](artifacts/screenshots/03-스토어-거래내역-VE-receipt-popup.png)
- ADMIN / 운영자 거래내역 / 운영자 거래 목록 또는 거래 상세에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인: [스크린샷 1](artifacts/screenshots/04-운영자-거래내역-ADMIN-receipt-popup.png)
- ADMIN / 운영자 거래내역 / 여러 PG 거래에서 영수증 버튼을 눌렀을 때 각 PG에 맞는 영수증 화면이 열리는지 확인: [스크린샷 1](artifacts/screenshots/05-운영자-거래내역-ADMIN-multi-pg-blocked.png)
- ADMIN / 운영자 거래내역 / 영수증을 열 수 없는 거래에서는 화면에 실패 메시지가 표시되고 빈 새 창이나 깨진 화면으로 이동하지 않는지 확인: [스크린샷 1](artifacts/screenshots/06-운영자-거래내역-ADMIN-receipt-failure.png)
- ADMIN / 운영자 거래내역 / 검증 거래 PG 취소 완료: [스크린샷 1](artifacts/screenshots/07-운영자-거래내역-ADMIN-pg-cancel.png)

## 화면 재현 기록

- 화면 재현 기록 자료가 없습니다.
- 화면 재현 기록은 실패한 항목에서 화면 전환과 요청 흐름을 다시 보기 위한 자료입니다.

## 실행 기록

- VE / 스토어 수기결제 / 수기결제 성공 후 화면 또는 응답 처리 흐름에서 거래 ID를 사용한 후속 동작이 정상 진행되는지 확인: [실행 기록 1](artifacts/logs/01-스토어-수기결제-VE-payment-success.md)
- VE / 스토어 수기결제 / 결제 실패 시 거래 ID가 없는 상태에서도 실패 메시지와 실패 처리 화면이 정상 표시되는지 확인: [실행 기록 1](artifacts/logs/02-스토어-수기결제-VE-payment-failure.md)
- VE / 스토어 거래내역 / 스토어 거래내역에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인: [실행 기록 1](artifacts/logs/03-스토어-거래내역-VE-receipt-popup.md)
- ADMIN / 운영자 거래내역 / 운영자 거래 목록 또는 거래 상세에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인: [실행 기록 1](artifacts/logs/04-운영자-거래내역-ADMIN-receipt-popup.md)
- ADMIN / 운영자 거래내역 / 여러 PG 거래에서 영수증 버튼을 눌렀을 때 각 PG에 맞는 영수증 화면이 열리는지 확인: [실행 기록 1](artifacts/logs/05-운영자-거래내역-ADMIN-multi-pg-blocked.md)
- ADMIN / 운영자 거래내역 / 영수증을 열 수 없는 거래에서는 화면에 실패 메시지가 표시되고 빈 새 창이나 깨진 화면으로 이동하지 않는지 확인: [실행 기록 1](artifacts/logs/06-운영자-거래내역-ADMIN-receipt-failure.md)
- ADMIN / 운영자 거래내역 / 검증 거래 PG 취소 완료: [실행 기록 1](artifacts/logs/07-운영자-거래내역-ADMIN-pg-cancel.md)

## 자동화 원본 결과

| Scenario | Status | Duration | Screenshot | 화면 재현 기록 | Log | Error |
|---|---:|---:|---|---|---|---|
| 3315/dev/receipt-v2-payment-id.spec.ts / [3315][dev] [QA] 영수증 조회 V2 API와 PG별 영수증 URL 통합 검증 / [VE] role / 스토어 수기결제 / 수기결제 성공 후 화면 또는 응답 처리 흐름에서 거래 ID를 사용한 후속 동작이 정상 진행되는지 확인 | PASS | 17765ms | [스크린샷 1](artifacts/screenshots/01-스토어-수기결제-VE-payment-success.png) |  | [로그 1](artifacts/logs/01-스토어-수기결제-VE-payment-success.md) |  |
| 3315/dev/receipt-v2-payment-id.spec.ts / [3315][dev] [QA] 영수증 조회 V2 API와 PG별 영수증 URL 통합 검증 / [VE] role / 스토어 수기결제 / 결제 실패 시 거래 ID가 없는 상태에서도 실패 메시지와 실패 처리 화면이 정상 표시되는지 확인 | PASS | 2561ms | [스크린샷 1](artifacts/screenshots/02-스토어-수기결제-VE-payment-failure.png) |  | [로그 1](artifacts/logs/02-스토어-수기결제-VE-payment-failure.md) |  |
| 3315/dev/receipt-v2-payment-id.spec.ts / [3315][dev] [QA] 영수증 조회 V2 API와 PG별 영수증 URL 통합 검증 / [VE] role / 스토어 거래내역 / 스토어 거래내역에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인 | PASS | 3040ms | [스크린샷 1](artifacts/screenshots/03-스토어-거래내역-VE-receipt-popup.png) |  | [로그 1](artifacts/logs/03-스토어-거래내역-VE-receipt-popup.md) |  |
| 3315/dev/receipt-v2-payment-id.spec.ts / [3315][dev] [QA] 영수증 조회 V2 API와 PG별 영수증 URL 통합 검증 / [ADMIN] role / 운영자 거래내역 / 운영자 거래 목록 또는 거래 상세에서 영수증 버튼 클릭 시 새 창으로 PG 영수증이 정상 표시되는지 확인 | PASS | 9256ms | [스크린샷 1](artifacts/screenshots/04-운영자-거래내역-ADMIN-receipt-popup.png) |  | [로그 1](artifacts/logs/04-운영자-거래내역-ADMIN-receipt-popup.md) |  |
| 3315/dev/receipt-v2-payment-id.spec.ts / [3315][dev] [QA] 영수증 조회 V2 API와 PG별 영수증 URL 통합 검증 / [ADMIN] role / 운영자 거래내역 / 여러 PG 거래에서 영수증 버튼을 눌렀을 때 각 PG에 맞는 영수증 화면이 열리는지 확인 | BLOCKED | 8587ms | [스크린샷 1](artifacts/screenshots/05-운영자-거래내역-ADMIN-multi-pg-blocked.png) |  | [로그 1](artifacts/logs/05-운영자-거래내역-ADMIN-multi-pg-blocked.md) | skip: BLOCKED: 현재 조회 범위에서 생성 거래와 다른 PG의 영수증 확인 가능 거래를 찾지 못했습니다. |
| 3315/dev/receipt-v2-payment-id.spec.ts / [3315][dev] [QA] 영수증 조회 V2 API와 PG별 영수증 URL 통합 검증 / [ADMIN] role / 운영자 거래내역 / 영수증을 열 수 없는 거래에서는 화면에 실패 메시지가 표시되고 빈 새 창이나 깨진 화면으로 이동하지 않는지 확인 | PASS | 12329ms | [스크린샷 1](artifacts/screenshots/06-운영자-거래내역-ADMIN-receipt-failure.png) |  | [로그 1](artifacts/logs/06-운영자-거래내역-ADMIN-receipt-failure.md) |  |
| 3315/dev/receipt-v2-payment-id.spec.ts / [3315][dev] [QA] 영수증 조회 V2 API와 PG별 영수증 URL 통합 검증 / [ADMIN] role / 운영자 거래내역 / 검증 거래 PG 취소 완료 | PASS | 15571ms | [스크린샷 1](artifacts/screenshots/07-운영자-거래내역-ADMIN-pg-cancel.png) |  | [로그 1](artifacts/logs/07-운영자-거래내역-ADMIN-pg-cancel.md) |  |

## Notes

- 일부 항목은 확인 조건이 부족해 BLOCKED로 분류되었습니다. 상세 사유는 `실패 또는 확인 불가 상세`를 확인하세요.
- 검토 후 `qa:redmine:update`로 report/evidence를 업로드하고 QA subissue 상태를 갱신합니다.
