# QA Report - Redmine #4019 (dev)

- Generated: 2026-08-24T16:52:00+09:00
- Redmine: https://itsm.bix.bz/issues/4019
- QA Redmine: https://itsm.bix.bz/issues/4045
- Subject: [QA] 수기결제 실패 메시지 PG 구분 검증
- Workflow Status: 작업완료
- Status: FAIL
- Result JSON: artifacts/result-summary.json
- Roles: CO -> BO -> VE
- Route Candidates: not recorded

## Scope

권한 반영 후 개발계 비스킷페이 CO, BO, VE 전 역할의 수기결제 화면 접근을 새 세션으로 확인하고, 실제 결제 승인 없이 PG 거절과 내부 1회 한도 초과 실패 메시지의 (PG) 접두어 구분을 검증한다.

## Checklist

1. 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인
2. 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인

## Setup Steps

1. [required] CO, BO, VE 개발계 로그인 및 수기결제 접근 확인 (store/VE / targets: CO, BO, VE / kind: state-verify) - 권한 반영 후 각 역할 계정의 로그인 세션을 새로 발급하고 /face-to-face-payment 접근 여부를 확인한다. CO/BO에 VE 권한 접근 제한이 계속 표시되면 권한 반영 실패로 판정한다.
2. [required] 실패 결제 요청 허용 및 카드 사전 데이터 확인 (store/VE / kind: manual-precondition / mutation: persistent / guard: QA_4019_ALLOW_PAYMENT_FAILURE_TEST) - CO, BO, 본인인증 OFF VE 계정과 테스트 카드 정보를 로컬 환경변수로만 주입한다. QA_4019_ALLOW_PAYMENT_FAILURE_TEST=1일 때만 실패 결제 요청을 전송하며 성공 승인 응답은 테스트 실패로 처리한다.

## Source Text

송인준님의 QA 요청입니다. 비스킷페이 CO, BO, VE 계정으로 결제 > 수기결제 화면을 검증합니다. 주민등록번호, 카드 비밀번호 또는 카드 유효기간을 잘못 입력한 결제 실패 메시지에는 (PG)가 표시되어야 하고, 수기결제 1회 한도 초과 실패 메시지에는 (PG)가 표시되지 않아야 합니다. 2026-08-24 권한 부여 완료 후 CO, BO, VE 전 역할 재QA를 요청받았습니다. Redmine: https://itsm.bix.bz/issues/4019

## Execution Summary

- Passed: 2
- Failed: 4
- Skipped: 0
- Blocked: 0
- Flaky: 0
- Duration: 39982ms


## 한눈에 보는 결과

| 확인한 항목 | 계정 | 화면 | 수행한 동작 | 결과 | 증거 자료 |
|---|---|---|---|---|---|
| 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인 | CO | 스토어 수기결제 | CO 계정으로 스토어 수기결제 항목을 확인 | 기대한 동작과 달랐습니다: Error: CO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality | [스크린샷 1](artifacts/screenshots/01-스토어-수기결제-CO-pg-error-prefix.png)<br>[화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/01-스토어-수기결제-CO-pg-error-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)<br>[실행 기록 1](artifacts/logs/01-스토어-수기결제-CO-pg-error-prefix.md)<br>[실행 기록 2](artifacts/logs/02-error-context.md) |
| 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인 | CO | 스토어 수기결제 | CO 계정으로 스토어 수기결제 항목을 확인 | 기대한 동작과 달랐습니다: Error: CO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality | [스크린샷 1](artifacts/screenshots/02-스토어-수기결제-CO-limit-error-without-pg-prefix.png)<br>[화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/02-스토어-수기결제-CO-limit-error-without-pg-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)<br>[실행 기록 1](artifacts/logs/03-스토어-수기결제-CO-limit-error-without-pg-prefix.md)<br>[실행 기록 2](artifacts/logs/04-error-context.md) |
| 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인 | BO | 스토어 수기결제 | BO 계정으로 스토어 수기결제 항목을 확인 | 기대한 동작과 달랐습니다: Error: BO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality | [스크린샷 1](artifacts/screenshots/03-스토어-수기결제-BO-pg-error-prefix.png)<br>[화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/03-스토어-수기결제-BO-pg-error-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)<br>[실행 기록 1](artifacts/logs/05-스토어-수기결제-BO-pg-error-prefix.md)<br>[실행 기록 2](artifacts/logs/06-error-context.md) |
| 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인 | BO | 스토어 수기결제 | BO 계정으로 스토어 수기결제 항목을 확인 | 기대한 동작과 달랐습니다: Error: BO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality | [스크린샷 1](artifacts/screenshots/04-스토어-수기결제-BO-limit-error-without-pg-prefix.png)<br>[화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/04-스토어-수기결제-BO-limit-error-without-pg-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)<br>[실행 기록 1](artifacts/logs/07-스토어-수기결제-BO-limit-error-without-pg-prefix.md)<br>[실행 기록 2](artifacts/logs/08-error-context.md) |
| 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인 | VE | 스토어 수기결제 | VE 계정으로 스토어 수기결제 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/05-스토어-수기결제-VE-pg-error-prefix.png)<br>[실행 기록 1](artifacts/logs/09-스토어-수기결제-VE-pg-error-prefix.md) |
| 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인 | VE | 스토어 수기결제 | VE 계정으로 스토어 수기결제 항목을 확인 | 기대한 동작과 일치했습니다. | [스크린샷 1](artifacts/screenshots/06-스토어-수기결제-VE-limit-error-without-pg-prefix.png)<br>[실행 기록 1](artifacts/logs/10-스토어-수기결제-VE-limit-error-without-pg-prefix.md) |

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

### 1. CO / 스토어 수기결제 / 실패

- 체크 항목: 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인
- 수행한 동작: CO 계정으로 스토어 수기결제 항목을 확인
- 기대 결과: CO 계정에서 스토어 수기결제 확인 결과가 체크리스트와 일치해야 합니다.
- 실제 결과: 기대한 동작과 달랐습니다: Error: CO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality
- 분류: 기대 결과와 다름
- 오류 내용: Error: CO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality
- 스크린샷: [스크린샷 1](artifacts/screenshots/01-스토어-수기결제-CO-pg-error-prefix.png)
- 화면 재현 기록: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/01-스토어-수기결제-CO-pg-error-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- 실행 기록: [실행 기록 1](artifacts/logs/01-스토어-수기결제-CO-pg-error-prefix.md)<br>[실행 기록 2](artifacts/logs/02-error-context.md)
- 수동 확인 명령: `npm run qa:debug -- --issue "4019" --env "dev" --role "CO" --case "수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인"`

### 2. CO / 스토어 수기결제 / 실패

- 체크 항목: 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인
- 수행한 동작: CO 계정으로 스토어 수기결제 항목을 확인
- 기대 결과: CO 계정에서 스토어 수기결제 확인 결과가 체크리스트와 일치해야 합니다.
- 실제 결과: 기대한 동작과 달랐습니다: Error: CO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality
- 분류: 기대 결과와 다름
- 오류 내용: Error: CO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality
- 스크린샷: [스크린샷 1](artifacts/screenshots/02-스토어-수기결제-CO-limit-error-without-pg-prefix.png)
- 화면 재현 기록: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/02-스토어-수기결제-CO-limit-error-without-pg-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- 실행 기록: [실행 기록 1](artifacts/logs/03-스토어-수기결제-CO-limit-error-without-pg-prefix.md)<br>[실행 기록 2](artifacts/logs/04-error-context.md)
- 수동 확인 명령: `npm run qa:debug -- --issue "4019" --env "dev" --role "CO" --case "수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인"`

### 3. BO / 스토어 수기결제 / 실패

- 체크 항목: 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인
- 수행한 동작: BO 계정으로 스토어 수기결제 항목을 확인
- 기대 결과: BO 계정에서 스토어 수기결제 확인 결과가 체크리스트와 일치해야 합니다.
- 실제 결과: 기대한 동작과 달랐습니다: Error: BO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality
- 분류: 기대 결과와 다름
- 오류 내용: Error: BO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality
- 스크린샷: [스크린샷 1](artifacts/screenshots/03-스토어-수기결제-BO-pg-error-prefix.png)
- 화면 재현 기록: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/03-스토어-수기결제-BO-pg-error-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- 실행 기록: [실행 기록 1](artifacts/logs/05-스토어-수기결제-BO-pg-error-prefix.md)<br>[실행 기록 2](artifacts/logs/06-error-context.md)
- 수동 확인 명령: `npm run qa:debug -- --issue "4019" --env "dev" --role "BO" --case "수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인"`

### 4. BO / 스토어 수기결제 / 실패

- 체크 항목: 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인
- 수행한 동작: BO 계정으로 스토어 수기결제 항목을 확인
- 기대 결과: BO 계정에서 스토어 수기결제 확인 결과가 체크리스트와 일치해야 합니다.
- 실제 결과: 기대한 동작과 달랐습니다: Error: BO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality
- 분류: 기대 결과와 다름
- 오류 내용: Error: BO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality
- 스크린샷: [스크린샷 1](artifacts/screenshots/04-스토어-수기결제-BO-limit-error-without-pg-prefix.png)
- 화면 재현 기록: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/04-스토어-수기결제-BO-limit-error-without-pg-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- 실행 기록: [실행 기록 1](artifacts/logs/07-스토어-수기결제-BO-limit-error-without-pg-prefix.md)<br>[실행 기록 2](artifacts/logs/08-error-context.md)
- 수동 확인 명령: `npm run qa:debug -- --issue "4019" --env "dev" --role "BO" --case "수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인"`


## 수동 재현 필요

### 1. CO / 스토어 수기결제 / 기대 결과와 다름

- 체크 항목: 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인
- 필요한 이유: 화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.
- 작업자 알림: [QA 확인 요청] CO / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue "4019" --env "dev" --role "CO" --case "수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인" 로 동일 계정과 항목을 다시 열어 확인하세요.
- 직접 열기 명령: `npm run qa:debug -- --issue "4019" --env "dev" --role "CO" --case "수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인"`
- 작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.
- 브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.
- 확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다.

### 2. CO / 스토어 수기결제 / 기대 결과와 다름

- 체크 항목: 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인
- 필요한 이유: 화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.
- 작업자 알림: [QA 확인 요청] CO / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue "4019" --env "dev" --role "CO" --case "수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인" 로 동일 계정과 항목을 다시 열어 확인하세요.
- 직접 열기 명령: `npm run qa:debug -- --issue "4019" --env "dev" --role "CO" --case "수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인"`
- 작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.
- 브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.
- 확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다.

### 3. BO / 스토어 수기결제 / 기대 결과와 다름

- 체크 항목: 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인
- 필요한 이유: 화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.
- 작업자 알림: [QA 확인 요청] BO / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue "4019" --env "dev" --role "BO" --case "수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인" 로 동일 계정과 항목을 다시 열어 확인하세요.
- 직접 열기 명령: `npm run qa:debug -- --issue "4019" --env "dev" --role "BO" --case "수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인"`
- 작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.
- 브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.
- 확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다.

### 4. BO / 스토어 수기결제 / 기대 결과와 다름

- 체크 항목: 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인
- 필요한 이유: 화면에서 확인한 값이 체크리스트의 기대 결과와 달랐습니다.
- 작업자 알림: [QA 확인 요청] BO / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: 기대 결과와 다름 상태입니다. npm run qa:debug -- --issue "4019" --env "dev" --role "BO" --case "수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인" 로 동일 계정과 항목을 다시 열어 확인하세요.
- 직접 열기 명령: `npm run qa:debug -- --issue "4019" --env "dev" --role "BO" --case "수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인"`
- 작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.
- 브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.
- 확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다.


## 스크린샷

- CO / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: [스크린샷 1](artifacts/screenshots/01-스토어-수기결제-CO-pg-error-prefix.png)
- CO / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: [스크린샷 1](artifacts/screenshots/02-스토어-수기결제-CO-limit-error-without-pg-prefix.png)
- BO / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: [스크린샷 1](artifacts/screenshots/03-스토어-수기결제-BO-pg-error-prefix.png)
- BO / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: [스크린샷 1](artifacts/screenshots/04-스토어-수기결제-BO-limit-error-without-pg-prefix.png)
- VE / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: [스크린샷 1](artifacts/screenshots/05-스토어-수기결제-VE-pg-error-prefix.png)
- VE / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: [스크린샷 1](artifacts/screenshots/06-스토어-수기결제-VE-limit-error-without-pg-prefix.png)

## 화면 재현 기록

- CO / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/01-스토어-수기결제-CO-pg-error-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- CO / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/02-스토어-수기결제-CO-limit-error-without-pg-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- BO / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/03-스토어-수기결제-BO-pg-error-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- BO / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/04-스토어-수기결제-BO-limit-error-without-pg-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c)
- 화면 재현 기록은 기본적으로 실패/확인불가 항목에 한해 포함합니다. PASS 항목 trace까지 필요하면 `QA_PUBLISH_TRACE=1 npm run qa:report -- --issue <id> --env <env>`로 내부 제출용 산출물을 생성합니다.

## 실행 기록

- CO / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: [실행 기록 1](artifacts/logs/01-스토어-수기결제-CO-pg-error-prefix.md)
- CO / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: [실행 기록 2](artifacts/logs/02-error-context.md)
- CO / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: [실행 기록 1](artifacts/logs/03-스토어-수기결제-CO-limit-error-without-pg-prefix.md)
- CO / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: [실행 기록 2](artifacts/logs/04-error-context.md)
- BO / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: [실행 기록 1](artifacts/logs/05-스토어-수기결제-BO-pg-error-prefix.md)
- BO / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: [실행 기록 2](artifacts/logs/06-error-context.md)
- BO / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: [실행 기록 1](artifacts/logs/07-스토어-수기결제-BO-limit-error-without-pg-prefix.md)
- BO / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: [실행 기록 2](artifacts/logs/08-error-context.md)
- VE / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인: [실행 기록 1](artifacts/logs/09-스토어-수기결제-VE-pg-error-prefix.md)
- VE / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인: [실행 기록 1](artifacts/logs/10-스토어-수기결제-VE-limit-error-without-pg-prefix.md)

## 자동화 원본 결과

| Scenario | Status | Duration | Screenshot | 화면 재현 기록 | Log | Error |
|---|---:|---:|---|---|---|---|
| 4019/dev/manual-payment-error-source.spec.ts / [4019][dev] [QA] 수기결제 실패 메시지 PG 구분 검증 / [CO] role / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인 | FAIL | 3794ms | [스크린샷 1](artifacts/screenshots/01-스토어-수기결제-CO-pg-error-prefix.png) | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/01-스토어-수기결제-CO-pg-error-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c) | [로그 1](artifacts/logs/01-스토어-수기결제-CO-pg-error-prefix.md)<br>[로그 2](artifacts/logs/02-error-context.md) | Error: CO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality |
| 4019/dev/manual-payment-error-source.spec.ts / [4019][dev] [QA] 수기결제 실패 메시지 PG 구분 검증 / [CO] role / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인 | FAIL | 6734ms | [스크린샷 1](artifacts/screenshots/02-스토어-수기결제-CO-limit-error-without-pg-prefix.png) | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/02-스토어-수기결제-CO-limit-error-without-pg-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c) | [로그 1](artifacts/logs/03-스토어-수기결제-CO-limit-error-without-pg-prefix.md)<br>[로그 2](artifacts/logs/04-error-context.md) | Error: CO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality |
| 4019/dev/manual-payment-error-source.spec.ts / [4019][dev] [QA] 수기결제 실패 메시지 PG 구분 검증 / [BO] role / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인 | FAIL | 3606ms | [스크린샷 1](artifacts/screenshots/03-스토어-수기결제-BO-pg-error-prefix.png) | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/03-스토어-수기결제-BO-pg-error-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c) | [로그 1](artifacts/logs/05-스토어-수기결제-BO-pg-error-prefix.md)<br>[로그 2](artifacts/logs/06-error-context.md) | Error: BO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality |
| 4019/dev/manual-payment-error-source.spec.ts / [4019][dev] [QA] 수기결제 실패 메시지 PG 구분 검증 / [BO] role / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인 | FAIL | 7659ms | [스크린샷 1](artifacts/screenshots/04-스토어-수기결제-BO-limit-error-without-pg-prefix.png) | [화면 재현 기록 1](https://pub-2726d2ecd69d4e12a4515edca8540068.r2.dev/qa/issues/4019/dev/artifacts/traces/04-스토어-수기결제-BO-limit-error-without-pg-prefix-trace.zip?v=649103b98bcc3d3d77c897394d99d4a0c735055c) | [로그 1](artifacts/logs/07-스토어-수기결제-BO-limit-error-without-pg-prefix.md)<br>[로그 2](artifacts/logs/08-error-context.md) | Error: BO 계정에 VE 수기결제 권한 접근 제한 안내가 표시되면 안 됩니다.  expect(received).toBe(expected) // Object.is equality |
| 4019/dev/manual-payment-error-source.spec.ts / [4019][dev] [QA] 수기결제 실패 메시지 PG 구분 검증 / [VE] role / 스토어 수기결제 / 수기 결제 시 주민번호 또는 카드 비밀번호, 카드 유효기간을 잘못 입력한 뒤 결제를 시도하고 표시되는 에러 메시지에 (PG)가 표시되는지 확인 | PASS | 8135ms | [스크린샷 1](artifacts/screenshots/05-스토어-수기결제-VE-pg-error-prefix.png) |  | [로그 1](artifacts/logs/09-스토어-수기결제-VE-pg-error-prefix.md) |  |
| 4019/dev/manual-payment-error-source.spec.ts / [4019][dev] [QA] 수기결제 실패 메시지 PG 구분 검증 / [VE] role / 스토어 수기결제 / 수기 결제 1회 한도 이상 금액으로 결제 시도 후 에러 메시지에 (PG)가 표시되지 않는지 확인 | PASS | 7602ms | [스크린샷 1](artifacts/screenshots/06-스토어-수기결제-VE-limit-error-without-pg-prefix.png) |  | [로그 1](artifacts/logs/10-스토어-수기결제-VE-limit-error-without-pg-prefix.md) |  |

## Notes

- Playwright 실행 결과를 기준으로 작성되었습니다.
- QA PR merge, 공개 보고서 확인, QA subissue 종료 상태 갱신이 반영되었습니다.
