Files
Gnuboard7/plugins/_bundled/sirsoft-tosspayments/CHANGELOG.md
T
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

11 KiB

Changelog

이 프로젝트의 모든 주요 변경사항을 기록합니다. 형식은 Keep a Changelog를 따르며, Semantic Versioning을 준수합니다.

[1.0.3] - 2026-09-04

Security

  • 결제창 프로그램을 불러오는 주소가 토스페이먼츠의 주소인지 불러오기 직전에 확인합니다. 확인되지 않는 주소면 결제를 진행하지 않고 안내를 표시합니다. 또한 결제창 프로그램이 실제로 준비되었는지를 기준으로 다음 단계를 진행하도록 바꿔, 프로그램이 아직 준비되지 않았는데 결제창이 열리지 않고 멈추던 상황을 없앴습니다.
  • 제3자가 남의 주문번호만 알면 주소 하나로 그 주문을 취소시킬 수 있던 문제를 수정했습니다. 결제 실패 안내 주소는 로그인도 서명 확인도 거치지 않고 주문번호와 실패 사유를 주소에 담아 받는 경로여서, 그 주소를 열기만 해도 해당 주문이 결제 실패로 처리되었습니다. 이제 이 주소는 주문 상태를 바꾸지 않고 결제 화면으로 되돌려 보내기만 합니다. 결제 성립은 종전처럼 서버 승인 확인으로, 결제완료 후 취소는 서명이 확인된 입금·취소 통보로 처리됩니다.

Added

  • 결제창을 닫거나 결제가 거절됐을 때 그 사실을 서버에 알리는 경로를 추가했습니다. 구매자 본인인지 확인한 뒤에만 주문을 실패로 기록하므로, 남의 주문번호를 아는 것만으로는 그 주문을 건드릴 수 없습니다. 다른 결제사 플러그인이 이미 제공하던 것과 같은 방식입니다.
  • 결제가 거절되어 실패 화면으로 돌아오면 그 사실이 자동으로 서버에 기록됩니다. 종전에는 결제 실패가 어디에도 남지 않았습니다.
  • 개발자와 AI 에이전트를 위한 문서를 추가했습니다. 확장 폴더의 AGENTS.md(설계 의도·확장점·수정 시 확인할 것)와 README.md(도입·운영 안내), docs/(상세 문서)로 구성됩니다.
  • 확장 문서에 「레이아웃 편집기 스펙」 항목을 추가했습니다. 이 확장이 레이아웃 편집기에 무엇을 선언했는지와, 화면 요소나 데이터를 추가할 때 편집기 쪽에서 함께 해야 할 일을 담습니다.
  • 문서의 제품 표기를 「그누보드7」로 통일했습니다.

[1.0.2] - 2026-08-19

Fixed

  • 빌드 산출물이 존재하지 않는 소스맵 파일을 참조해 브라우저 개발자 도구 사용 시 불필요한 404 요청이 발생하던 문제를 수정했습니다.
  • 결제 실패 시 이동하는 페이지 주소에 서버 내부 오류 원문이 그대로 실려 나가던 문제를 수정했습니다. 이제 안내 문구만 전달되며, 원인 파악에 필요한 원문은 서버 로그에만 기록됩니다.
  • 플러그인 설정 저장이 실패했을 때 실패 사유 대신 일반 안내 문구만 표시되던 문제를 수정했습니다. 이제 서버가 알려준 사유가 그대로 안내됩니다.

Changed

  • 코어 최소 요구 버전을 7.0.10 으로 상향

[1.0.1] - 2026-08-11

Fixed

  • 관리자 주문설정에서 주문서형 결제수단의 PG사 표시가 저장된 설정과 어긋나던 문제를 수정했습니다. 이미 저장해 둔 주문설정도 업데이트 시 자동으로 정정되며, 활성 여부 등 직접 설정한 값은 그대로 유지됩니다.

[1.0.0] - 2026-08-10

Added

  • 레이아웃 편집기 데이터 소스 목록에서 이 확장이 제공하는 데이터 소스가 친화 명칭으로 표시되고, 어느 확장이 제공했는지 출처가 함께 표시됩니다.

결제 방식

  • 주문서형 결제 모드를 지원합니다. 켜면 체크아웃에서 카드·가상계좌·계좌이체·휴대폰·간편결제(토스페이·카카오페이·네이버페이·페이코·삼성페이) 중 원하는 결제수단을 직접 선택할 수 있고, 끄면 기존처럼 통합결제창 하나로 결제합니다.
  • 설정 화면에서 노출할 결제수단을 개별로 켜고 끌 수 있습니다.
  • 원화(KRW) 외 통화 주문에서는 카드 결제만 허용하고 국내 전용 수단은 자동으로 차단합니다.

가상계좌

  • 가상계좌 결제를 지원합니다. 입금 기한(시간)과 발급 시 자동 현금영수증 유형을 설정할 수 있습니다.
  • 입금이 완료되면 토스 입금통보를 받아 주문을 자동으로 결제완료 처리합니다. 위조 요청을 막기 위한 secret 검증을 제공하며, 설정 화면에서 등록할 웹훅 URL을 복사할 수 있습니다.
  • 가상계좌 입금기한과 에스크로 사용 설정을 저장할 때 허용 범위를 서버에서 검증합니다. 입금기한이 1~2160시간(최대 90일)을 벗어나면 저장되지 않고 안내 메시지가 표시됩니다 — 잘못된 값이 저장되어 결제창 호출이 실패하는 것을 막습니다.

에스크로

  • 가상계좌·계좌이체 결제에 에스크로(구매안전서비스)를 적용할 수 있습니다. 사용 안 함 / 강제 사용 / 구매자 선택 중에서 고를 수 있습니다.
  • 에스크로 결제 시 결제창에 상품 정보(상품명·단가·수량)를 함께 전달합니다. 가상계좌와 계좌이체 모두에 적용됩니다.
  • 에스크로를 켜면 설정 화면에 운영 안내가 표시됩니다 — 에스크로 주문은 부분취소가 불가하다는 점과, 배송정보는 토스 상점관리자에서 등록해야 한다는 점을 안내하며 상점관리자로 바로 이동할 수 있습니다.
  • 에스크로로 결제된 주문은 관리자 주문 상세와 구매자 주문 상세에 에스크로 거래임이 표시됩니다.

현금영수증

  • 현금영수증을 토스페이먼츠로 발급할 수 있습니다. 결제는 다른 PG로 받으면서 현금영수증만 토스페이먼츠로 발급하는 구성도 가능합니다.
  • 부분환불 등으로 주문 금액이 바뀌면 기존 영수증을 취소하고 새 금액으로 다시 발급합니다. 재발급 시에도 중복 없이 처리됩니다.

영수증 확인

  • 주문상세(구매자·관리자)에서 토스페이먼츠 영수증을 바로 열어볼 수 있습니다. 관리자 화면에서는 가상계좌 입금 정보와 에스크로 여부도 함께 확인할 수 있습니다.

Changed

  • 플러그인 환경설정 화면의 하단 저장 버튼이 스크롤 중에도 화면에 고정되도록 개선.
  • sirsoft-ecommerce 최소 버전을 1.1.0 으로 상향 (현금영수증 프로바이더 훅 축 · 결제수단 확장점 의존).

Fixed

  • 쇼핑몰 주소를 기본값이 아닌 값으로 바꾸거나 주소 없이 운영하는 상점에서, 결제를 마치거나 결제에 실패한 구매자가 존재하지 않는 페이지로 이동하던 문제를 수정했습니다. 이동 주소가 기본 주소로 고정돼 있었기 때문이며, 이제 상점 주소 설정을 따라갑니다. 이미 운영 중인 사이트도 업데이트 시 자동으로 반영되며, 이동 주소를 직접 입력해 두었다면 그 값은 그대로 유지됩니다. (#85 @hwaryeon1234 님께서 제보해주셨습니다.)
  • 전액 환불이 부분취소로 잘못 요청되던 문제를 수정했습니다. 이미 부분취소한 이력이 있는 주문의 잔액 취소도 정확한 금액으로 처리됩니다.
  • 면세 상품이 포함된 주문을 환불할 때 면세 금액이 함께 전달되지 않아 부가세가 잘못 계산되던 문제를 수정했습니다.
  • 가상계좌 결제를 취소할 때 환불받을 계좌 정보가 전달되지 않아 취소가 실패하던 문제를 수정했습니다. 계좌 정보가 없으면 취소 전에 안내합니다.
  • 에스크로 결제는 부분취소가 불가하므로, 시도 시 결제사 호출 전에 차단하고 안내합니다.
  • 네트워크 재시도로 같은 취소 요청이 두 번 전달되어도 중복 취소되지 않도록 했습니다.

[1.0.0-beta.3] - 2026-05-11

Added

  • 결제 취소 전후에 외부 확장이 본인인증 등 추가 로직을 붙일 수 있는 확장점 제공

Changed

  • 관리자 화면 좌우 정렬 컨테이너(섹션 헤더 · 액션바 · 카드 상단부 등) 외형을 표준 시맨틱(.flex-between)으로 정리 — 시각 변경 없음, 향후 톤 조정이 한 곳에서 가능.
  • sirsoft-ecommerce 의존성을 >=1.0.0-beta.3 으로 정비
  • 플러그인 환경설정 화면의 하단 저장 버튼이 스크롤 중에도 화면에 고정되도록 개선.
  • 플러그인 환경설정 화면의 폼 라벨 / 보조 설명 / 에러 메시지 시각 시맨틱을 sirsoft-admin_basic 표준 시맨틱과 정합 — 다른 관리자 화면과 같은 결로 통일.
  • 플러그인 환경설정 화면 곳곳의 텍스트 톤 (보조 설명 · 라벨 · 본문 · 강조 · 작은 보조) 시각 시맨틱을 관리자 표준 시맨틱과 정합 — 같은 결의 글자 톤이 한 곳에서 일괄 조정 가능.
  • 플러그인 환경설정 화면의 세로 정렬 컨테이너 / 입력 박스를 sirsoft-admin_basic 표준 시맨틱 (.stack / .input) 과 정합 — 표준 간격과 외형이 일관 표시되도록 정리.

[1.0.0-beta.2] - 2026-04-20

Changed

  • 코어 최소 요구 버전을 7.0.0-beta.2 로 상향
  • sirsoft-ecommerce 의존성 버전 제약을 실제 릴리스 버전에 맞춰 정비
  • 플러그인 의존성 관리를 manifest(plugin.json) 기준으로 일원화

[1.0.0-beta.1] - 2026-04-01

Changed

  • 오픈 베타 릴리즈

[0.2.2] - 2026-03-30

Changed

  • frontend_schema에서 is_test_mode, redirect_success_url, redirect_fail_url을 expose: false로 변경 — 프론트엔드 미참조 설정의 보안 노출 차단

[0.2.1] - 2026-03-25

Changed

  • app(PluginSettingsService::class) 직접 호출을 plugin_settings() 헬퍼로 교체 (SuccessCallbackRequest, PaymentRefundListener, RegisterPgProviderListener)
  • 불필요한 PluginSettingsService use문 제거 (3개 파일)

[0.2.0] - 2026-03-24

Added

  • 환불 리스너 추가 (PaymentRefundListener): 주문 취소 시 토스페이먼츠 환불 API 연동
  • 다국어 메시지 파일 추가 (ko/en messages.php)

[0.1.3] - 2026-03-16

Changed

  • 라이선스 프로그램 명칭 정비

[0.1.2] - 2026-03-13

Added

  • manifest에 license 필드 및 LICENSE 파일 추가

Changed

  • 설정 레이아웃 경로를 resources/layouts/settings.json → resources/layouts/admin/plugin_settings.json으로 이동 (모듈과 동일한 구조 통일)

[0.1.1] - 2026-02-24

Changed

  • 버전 체계 조정 (정식 출시 전 0.x 체계로 변경)

[0.1.0] - 2026-02-23

Added

  • 토스페이먼츠 결제 플러그인 초기 구현
  • 카드/계좌이체/가상계좌/무통장입금 결제 지원
  • 결제 위젯 (TossPayments SDK) 통합
  • 결제 확인 (confirm) 프로세스
  • 결제 성공/실패 콜백 처리
  • 결제 상태 웹훅 처리
  • 플러그인 설정 UI (API 키, 시크릿 키 관리)
  • sirsoft-ecommerce 모듈 결제 인터페이스 (PaymentInterface) 연동
  • 다국어 지원 (ko, en)