Files
HeuJung 482faf00be chore(release): 7.0.10 출시일 정렬 + 공개 배포본 누출 정정
7.0.9 페이로드 대비 버전이 오른 패키지 31종과 코어의 CHANGELOG 최상단 절
날짜를 2026-09-04 로 맞췄다.

이어서 릴리즈 스크립트의 게이트를 브랜치 생성 없이 전수 실행한 결과, 파일
본문 누출 검사가 error 25건으로 릴리즈를 막고 있었다. 전부 이번 사이클에
들어온 것이다.

- 확장 문서·코어 주석 20건이 공개 배포본에 없는 를 가리켰다.
 공개되는 AGENTS.md 참조로 바꾸고, 참조된 9개 절의 실재를 전수 확인했다.
 유일하게 빠져 있던 「독립 레이아웃의 글로벌 호스트 컴포넌트」절은 원래
 동기화 대상이었으므로 AGENTS.md 에 반영했다.
- 시나리오 매니페스트의 내부 문서 포인터는 소비자가 하나도 없어 제거했다.
- 공개 테스트 3건이 내부 검사 스크립트를 열어 도구 간 리터럴을 대조하고
 있었다. tests/** 는 배포 페이로드에 포함되고 는 제외되므로
 배포본에서 원리상 성립할 수 없는 검사다. 대조를 그 도구 옆으로 옮기고
 공개 테스트에는 자기 동작 단언만 남겼다. 존재 가드로 무마하지 않은 것은
 그 경우 배포본에서 검사가 조용히 건너뛰어져 "검사하지 않음" 과 "통과" 가
 구분되지 않기 때문이다.

옮긴 대조는 돌지 않으면 잠그지 못하므로 대상 파일 편집 시 자동 실행되도록
등록했다. 누출 검사 자체도 릴리즈 시점에만 돌아 위반이 다음 릴리즈까지
드러나지 않았으므로, 룰을 복제하지 않고 실행 시점만 세션 종료로 앞당겼다.

같은 검증 중 드러난 선행 결함 하나(이커머스 문서의 집계 블록 드리프트)도
함께 정리했다.
2026-09-04 12:18:22 +09:00

5.5 KiB

토스페이먼츠 — 설정·권한·라우트

설정 스키마·권한·메뉴·라우트·의존 관계 · 진입점: AGENTS.md

설정 스키마

키 타입 기본값 설명
is_test_mode boolean true 테스트 모드
test_client_key string - 테스트 클라이언트 키
test_secret_key string - 테스트 시크릿 키
live_client_key string - 라이브 클라이언트 키
live_secret_key string - 라이브 시크릿 키
redirect_success_url string {shopBase}/orders/{orderId}/complete 결제 성공 리다이렉트 URL
redirect_fail_url string {shopBase}/checkout 결제 실패 리다이렉트 URL
order_sheet_mode boolean false 주문서형 결제
method_card boolean true 카드
method_virtual_account boolean false 가상계좌
method_transfer boolean false 계좌이체
method_mobile_phone boolean false 휴대폰
method_tosspay boolean false 토스페이
method_kakaopay boolean false 카카오페이
method_naverpay boolean false 네이버페이
method_payco boolean false 페이코
method_samsungpay boolean false 삼성페이
vbank_valid_hours integer 24 가상계좌 입금기한(시간)
vbank_cash_receipt_type string - 가상계좌 현금영수증 유형
use_escrow string off 에스크로 사용
webhook_secret_verify boolean true 웹훅 secret 검증

기본값 파일: config/settings/defaults.json · 설정 화면 레이아웃: resources/layouts/admin/plugin_settings.json

order_sheet_mode가 이 스키마의 분기점입니다 — false(결제창형)면 method_* 8개 플래그는 읽히지 않고 통합결제창이 결제수단 선택을 전담합니다. true(주문서형)로 켜야 method_* 플래그가 실제로 체크아웃 화면의 개별 버튼 노출 여부를 결정합니다(§AGENTS.md "이 확장은 무엇인가"). vbank_valid_hours(1~2160시간)와 use_escrow(off/on/buyer_choice)는 ValidateTossSettingsListener가 저장 시점에 범위를 강제합니다 — UI 의 input 힌트만으로는 관리자 설정 저장 API 직접 호출을 막을 수 없기 때문입니다. webhook_secret_verify를 끄면 가상계좌 웹훅의 유일한 위조 방지 수단이 사라지므로 기본값 true를 유지해야 합니다.

권한

선언된 권한이 없습니다.

결제 설정 접근 권한은 이커머스의 관리자 권한 체계 안에서 다뤄집니다 — PG 마다 별도 권한을 선언하면 PG 를 여러 개 설치했을 때 "결제 설정을 볼 수 있는 사람"이라는 하나의 개념이 플러그인 수만큼 중복 정의됩니다.

메뉴

등록하는 메뉴가 없습니다.

설정 화면(plugin_settings.json)은 코어의 "플러그인 관리 > 설정" 공통 진입점을 통해 접근합니다 — PG 플러그인마다 전용 사이드바 메뉴를 만들면 PG 를 여러 개 설치했을 때 메뉴가 난립합니다.

라우트

종류 파일 URL prefix
api src/routes/api.php /api/plugins/sirsoft-tosspayments/...
web src/routes/web.php /plugins/sirsoft-tosspayments/...

확장 라우트는 활성 상태인 확장의 것만 등록됩니다. 라우트 정의를 바꾸면 라우트 캐시 재생성이 필요합니다.

다른 PG 플러그인과 달리 api 라우트 파일이 없습니다 — 이 플러그인은 로그인 사용자가 Bearer 토큰으로 직접 호출하는 엔드포인트(예: 관리자 거래조회)를 두지 않습니다. 승인 콜백·가상계좌 웹훅 모두 결제창 리다이렉트나 토스 서버가 도달하는 경로라 web에만 있습니다.

의존 관계

이 확장이 의존하는 확장

확장 유형 버전 제약 번들
sirsoft-ecommerce 모듈 >=1.1.0 ✅

이 확장에 의존하는 확장 (이 확장을 비활성화하면 함께 영향을 받습니다)

없음.

sirsoft-ecommerce >=1.1.0 하드 의존은 §data-model.md 에서 설명한 구조(결제 상태는 이커머스가 소유, 이 플러그인은 절차만 소유)의 직접적 결과입니다 — 이커머스 없이는 이 플러그인이 다룰 주문 자체가 존재하지 않습니다. 이커머스의 PG 등록 훅이나 Order 모델 구조가 바뀌면 이 최소 버전을 올려야 합니다(§코어 AGENTS.md "확장 → 확장 동기화").