Files
Gnuboard7/modules/_bundled/sirsoft-ecommerce/docs/api/payments.md
T
HeuJung 6c8381f164 fix(core,board,ecommerce,plugins): API 문서 미채움 마커 전수 채움 + 미해석 lang 키 정정 + IDV 조회 시도횟수 비노출
이슈 본연: API 레퍼런스의 미채움 마커 5종(실측 제외/TODO/필드 없음/대표 에러 없음)
1,194건을 코드에서 읽어 전수 채우고(0건), api:docgen 재생성이 사람이 채운 내용을
손실·열화시키던 멱등성 결함 4종(CRLF, 표 파이프 이스케이프, 에러 서술 보존, 중복
라우트명 키)을 근본 수정. --check 를 실측 제외와 드리프트가 구분되도록 재정의.
ParameterDescriber/ResourceFieldDescriber 에 leaf 폴백·SEO 스코프·공통 사전 확장.

파생 결함(문서 실측 중 발견): ResponseHelper 기본 메시지 키 6종이 존재하지 않는
messages.* 를 가리켜 응답 message 가 번역문 대신 키 문자열로 노출되던 문제를 common.*
으로 정정하고, 코어 7 + gdpr/marketing/pay_kginicis/verification/ecommerce 확장의
호출부와 누락 lang 키(게시판 10키 + 이커머스 category_images 4키 포함)를 ko/en/ja
전수 정정. 중복 그룹 키 2건은 기존 키로 호출부 통합.

보안: GET /api/identity/challenges/{id} 는 권한 가드 없는 공개 폴링 엔드포인트인데
Service::getStatus 가 attempts/max_attempts 를 응답에 담아 남은 시도 횟수를 추론할 수
있었다. 두 필드를 제거하고, 챌린지 화면(admin_basic/basic)의 서버 attempts 참조를
제거(남은 횟수 UI 는 query fallback + verify 실패 시 로컬 증가로 유지).

부수 정리(변경셋에 들어온 board 컨트롤러의 audit 사전 결함): FormRequest 4개 신설로
base Request 주입 제거, CommentController 의 Board 직접 호출을 BoardService 위임으로
전환, PHPDoc @return 보강. board 스위트에서 발견한 stale test 3건(seed SSoT 불일치,
admin 계정 user 역할 누락)도 같은 세션에서 정정.

버전 정렬(공개 release 기준): 코어 7.0.3→7.0.4, sirsoft-board 1.0.1→1.0.2,
verification_kginicis 1.0.0→1.0.1, admin_basic 1.0.1→1.0.4.
2026-08-06 14:16:40 +09:00

9.1 KiB

Payments API 레퍼런스

소유: module sirsoft-ecommerce · 생성: php artisan api:docgen (실측 기반). @generated 블록은 재생성 시 갱신되며, 사람이 작성한 설명은 보존됩니다.


TL;DR (5초 요약)

1. 이 문서는 실제 API 호출로 실측한 Payments 엔드포인트 레퍼런스입니다
2. 각 엔드포인트: 메서드/URI/권한 + 요청 파라미터 표 + 요청 예시(curl) + 실측 응답 필드 표 + 응답 예시(envelope)
3. 응답 필드의 예시값·응답 예시 JSON 은 실제 호출 응답에서 관측된 값입니다
4. 갱신: 코드 변경 후 php artisan api:docgen 재실행
5. 설명(TODO) 칸은 사람이 채웁니다

GET /api/modules/sirsoft-ecommerce/payments/client-config/{provider}

  • 라우트명: api.modules.sirsoft-ecommerce.payments.client-config
  • 컨트롤러: Modules\Sirsoft\Ecommerce\Http\Controllers\Shop\PaymentConfigController@clientConfig
  • 인증/권한: 공개 (인증 불필요)

요청 파라미터

이름 위치 타입 필수 허용값 용도
provider path string 예 — 대상 provider의 식별자

요청 예시

GET /api/modules/sirsoft-ecommerce/payments/client-config/{provider} HTTP/1.1
Host: api.example.com
Accept: application/json

응답 필드 (data 내부)

단건 응답: data 객체의 필드. data 는 Resource 가 아니라 sirsoft-ecommerce.payment.get_client_config 필터 훅의 반환 배열을 그대로 담습니다. 따라서 키 구성은 설치된 PG 플러그인이 결정하며, 코어(모듈)는 어떤 키도 강제하지 않습니다. 아래는 번들 PG 플러그인 두 종의 실제 반환 키입니다.

공통 (모든 PG 플러그인이 공통으로 내려주는 키)

필드 타입 실측 예시값 용도/설명
sdk_url string https://js.tosspayments.com/v2/standard 프론트가 로드해야 할 PG 결제 SDK 스크립트 URL (테스트/운영 모드에 따라 달라질 수 있음)
callback_urls object {"success":"/plugins/sirsoft-tosspayments/payment/success","fail":"/plugins/sirsoft-tosspayments/payment/fail"} 결제창 성공/실패/콜백 등에서 사용할 플러그인 콜백 경로 모음 (키 구성은 PG마다 다름)

tosspayments (플러그인 sirsoft-tosspayments)

필드 타입 실측 예시값 용도/설명
client_key string test_ck_... 토스페이먼츠 SDK 초기화용 클라이언트 키 (테스트 모드면 test 키, 운영 모드면 live 키)
sdk_url string https://js.tosspayments.com/v2/standard 토스페이먼츠 v2 표준 SDK URL
order_sheet_mode boolean false 결제수단을 주문서(오더시트)에서 직접 선택하는 모드 여부. false 면 통합결제창 방식
enabled_methods array [] 오더시트 모드에서 활성화된 결제수단 목록. 결제창형(order_sheet_mode: false)이면 빈 배열
enabled_methods[].id string toss_card 플러그인 설정상의 결제수단 식별자
enabled_methods[].method string CARD 토스 SDK 에 전달할 결제수단 코드
enabled_methods[].easy_pay_provider string|null null 간편결제일 때 토스 SDK 의 easyPay provider 값 (일반 결제수단이면 null)
enabled_methods[].core_payment_method string card 이 결제수단에 대응하는 코어 결제수단 값 (프론트 하드코딩 제거용)
vbank object {"valid_hours":24,"cash_receipt_type":""} 가상계좌 관련 설정 묶음
vbank.valid_hours integer 24 가상계좌 입금 기한(시간)
vbank.cash_receipt_type string "" 가상계좌 현금영수증 발급 유형 (미설정이면 빈 문자열)
use_escrow string off 에스크로 사용 설정값 (플러그인 설정 문자열 그대로)
callback_urls.success string /plugins/sirsoft-tosspayments/payment/success 결제 성공 리다이렉트 경로
callback_urls.fail string /plugins/sirsoft-tosspayments/payment/fail 결제 실패 리다이렉트 경로

kginicis (플러그인 sirsoft-pay_kginicis)

필드 타입 실측 예시값 용도/설명
mid string INIpayTest 이니시스 상점 아이디(MID). 테스트/운영 및 에스크로 사용 여부에 따라 선택됨
sdk_url string https://stgstdpay.inicis.com/stdjs/INIStdPay.js 이니시스 표준결제 SDK URL (테스트: stgstdpay, 운영: stdpay)
callback_urls object — 서명/종료보고/콜백/CBT/모바일 등 이니시스 연동 경로 모음
callback_urls.signature string /plugins/sirsoft-pay_kginicis/payment/signature PC 표준결제 서명 발급 경로
callback_urls.close_report string /plugins/sirsoft-pay_kginicis/payment/close-report 결제창 종료 보고 경로
callback_urls.callback string /plugins/sirsoft-pay_kginicis/payment/callback PC 표준결제 인증 결과 콜백 경로
callback_urls.close string /plugins/sirsoft-pay_kginicis/payment/close 결제창 닫기 처리 경로
callback_urls.cbt_checkout_token string /plugins/sirsoft-pay_kginicis/payment/cbt/checkout-token 해외결제(CBT) 체크아웃 토큰 발급 경로
callback_urls.cbt_hash_data string /plugins/sirsoft-pay_kginicis/payment/cbt/hash-data CBT 해시 데이터 생성 경로
callback_urls.cbt_callback string /plugins/sirsoft-pay_kginicis/payment/cbt/callback CBT 결제 결과 콜백 경로
callback_urls.cbt_cvs_notify string /plugins/sirsoft-pay_kginicis/payment/cbt/cvs-notify CBT 편의점 결제 입금 통보 경로
callback_urls.cbt_auth_url string — CBT 인증 요청 URL (테스트/운영 상수값)
callback_urls.mobile_signature string /plugins/sirsoft-pay_kginicis/payment/mobile/signature 모바일 결제 서명 발급 경로
callback_urls.mobile_callback string /plugins/sirsoft-pay_kginicis/payment/mobile/callback 모바일 결제 결과 콜백 경로
callback_urls.mobile_vbank_notify string /plugins/sirsoft-pay_kginicis/payment/mobile/vbank-notify 모바일 가상계좌 입금 통보 경로
japan_enabled boolean false 일본 결제(해외결제) 사용 여부 설정값
japan_restrict_jpy_payment_methods boolean false JPY 결제 시 결제수단을 일본 전용으로 제한할지 여부
japan_configured boolean false 일본 결제에 필요한 설정(MID/키 등)이 모두 채워졌는지 여부
standard_configured boolean true PC 표준결제 설정이 모두 채워졌는지 여부
mobile_configured boolean true 모바일 결제 설정이 모두 채워졌는지 여부
use_escrow boolean false 에스크로 사용 여부 설정값
japan_mid string — 일본 결제용 상점 아이디 (테스트면 고정 테스트 MID, 운영이면 설정된 live MID)
cbt_extra_data object — CBT 결제 요청에 부가로 실어보낼 데이터 (플러그인 설정 기반으로 구성)
use_credit_point boolean false 신용카드 포인트 결제 사용 여부
easy_pay_show_brand_button boolean false 간편결제 브랜드 버튼 노출 여부
easy_pay_enabled_methods array [] 활성화된 국내 간편결제 수단 목록

응답 예시

tosspayments (결제창형, 테스트 모드) 기준:

{
    "success": true,
    "message": "결제 클라이언트 설정을 조회했습니다.",
    "data": {
        "client_key": "test_ck_xxxxxxxxxxxxxxxxxxxxxxxx",
        "sdk_url": "https://js.tosspayments.com/v2/standard",
        "order_sheet_mode": false,
        "enabled_methods": [],
        "vbank": {
            "valid_hours": 24,
            "cash_receipt_type": ""
        },
        "use_escrow": "off",
        "callback_urls": {
            "success": "/plugins/sirsoft-tosspayments/payment/success",
            "fail": "/plugins/sirsoft-tosspayments/payment/fail"
        }
    }
}

에러 응답

상태코드 의미 발생 조건
404 Not Found 해당 provider 에 대해 sirsoft-ecommerce.payment.get_client_config 필터가 빈 설정을 반환한 경우 (PG 플러그인 미설치·미활성·미지원 provider). 메시지: 결제 제공자를 찾을 수 없습니다.

설명 PG 제공자(provider, 예: tosspayments)의 프론트엔드 결제 SDK 초기화에 필요한 클라이언트 설정을 반환하는 공개 엔드포인트입니다. 인증이 필요 없으며, 결제 페이지가 결제창을 띄우기 직전에 호출합니다. 실제 설정값은 PaymentConfigController@clientConfig가 sirsoft-ecommerce.payment.get_client_config 필터 훅을 실행해 각 PG 플러그인이 등록한 client_key·sdk_url 등을 수집한 결과이며, 코어는 어떤 PG도 하드코딩하지 않습니다. 해당 provider에 등록된 설정이 없으면(플러그인 미설치·미활성) 404를 반환합니다.