간단 소스 편집기
허용:
css/
,
page/
· 확장자:
html/css/js
페이지 추가
새로고침
파일 목록
css
css/app.js
css/app.js
css/style.css
css/style.css
page
page/account
계정 수동 생성 ❓
page/account/account_create.html
무료 계정 ❓
page/account/free_account_list.html
무료 계정 > 상세 정보 (탭형) ❓
page/account/free_account_view_tab.html
유료 계정 ❓
page/account/paid_account_list.html
유료 계정 상세 정보 ❓
page/account/paid_account_view.html
유료 계정 > 상세 정보 (탭형) ❓
page/account/paid_account_view_tab.html
page/main
대시보드 ❓
page/main/main.html
page/ops
관리자 추가 ❓
page/ops/admin_form.html
관리자 리스트 ❓
page/ops/admin_list.html
관리자 수정 ❓
page/ops/admin_modify.html
API 로그 ❓
page/ops/api_log.html
메일발송 로그 ❓
page/ops/mail_log.html
SMS 발송 로그 ❓
page/ops/sms_log.html
page/payment
page/payment/customer_pay_log.html
page/payment/customer_pay_log.html
page/payment/customer_refund_list.html
page/payment/customer_refund_list.html
도메인 SSL 연장 로그 ❓
page/payment/domain_log.html
결제 리스트 ❓
page/payment/pay_log.html
포인트 사용 로그 ❓
page/payment/point_log.html
환불 등록 ❓
page/payment/refund_form.html
환불 리스트 ❓
page/payment/refund_list.html
세금/현금영수증 ❓
page/payment/tax_doc.html
page/payment/user_pay_log.html
page/payment/user_pay_log.html
page/payment/user_refund_log.html
page/payment/user_refund_log.html
page/product
상품 등록 ❓
page/product/product_form.html
상품 리스트 ❓
page/product/product_list.html
상품 상세 ❓
page/product/product_view.html
page/settle
계정 정산 리스트 ❓
page/settle/month_list.html
page/settle/settle_log.html
page/settle/settle_log.html
page/sidebar_menu.html
page/sidebar_menu.html
page/sidebar_menu.html
page/site
FAQ 등록 ❓
page/site/faq_form.html
FAQ ❓
page/site/faq_list.html
공지사항 등록 ❓
page/site/notice_form.html
공지사항 ❓
page/site/notice_list.html
공지사항 상세 ❓
page/site/notice_view.html
페이지 추가 ❓
page/site/page_form.html
페이지 관리 ❓
page/site/page_list.html
페이지 수정 ❓
page/site/page_modify.html
팝업창 수정 ❓
page/site/popup_form.html
팝업창 ❓
page/site/popup_list.html
page/site/popup_modify.html
page/site/popup_modify.html
1:1 문의 상세 ❓
page/site/qna_form.html
1:1 문의 ❓
page/site/qna_list.html
SEO 관리 ❓
page/site/seo.html
page/stats
page/stats/account.html
page/stats/account.html
page/stats/sales.html
page/stats/sales.html
page/stats/visit.html
page/stats/visit.html
편집
page/payment/refund_form.html
<!-- /page/payment/refund_form.html --> <style> .kv-list{ display:flex; flex-direction:column; gap:.65rem; } .kv-row{ display:flex; align-items:flex-start; gap:12px; } .kv-label{ width:160px; font-weight:600; color:#374151; white-space:nowrap; padding-top:6px; } .kv-sep{ width:1px; background:rgba(0,0,0,.08); margin-top:4px; margin-bottom:4px; } .kv-value{ flex:1; min-width:0; padding-top:0; } .kv-value, .kv-value *{ text-align:left; } .inline-actions{ display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; } .radio-row{ display:flex; flex-wrap:wrap; gap:.75rem 1.2rem; padding-top:4px; } .radio-row .form-check{ margin:0; } .readonly-like{ background:#f8f9fa; border:1px solid rgba(0,0,0,.12); border-radius:.5rem; padding:.5rem .75rem; min-height:38px; display:flex; align-items:center; } .panel{ border:1px solid rgba(0,0,0,.08); border-radius:.75rem; background:#fff; padding:12px; margin-top:10px; } .help-muted{ color:#6b7280; font-size:.85rem; } @media (max-width: 576px){ .kv-label{ width:120px; } } </style> <script> function pa(e, msg){ if(e) e.preventDefault(); alert(msg); return false; } </script> <div class="d-flex align-items-center justify-content-between mb-2"> <div> <h1 class="h4 mb-1">환불 등록 <button type="button" class="btn btn-link btn-sm p-0 ms-2 align-baseline" onclick="openPageHelp(this)" data-title="환불 등록"> ❓ </button> </h1> <div class="text-muted">관리자가 환불 건을 수동으로 등록합니다.</div> </div> </div> <div class="row g-3"> <div class="col-12"> <div class="card"> <div class="card-header"> <div class="fw-semibold">필수 정보 입력</div> </div> <div class="card-body"> <div class="kv-list"> <!-- ✅ 최상단: 계정 ID --> <div class="kv-row"> <div class="kv-label"><span class="text-danger me-1">*</span> 계정 ID</div><div class="kv-sep"></div> <div class="kv-value"> example10 </div> </div> <div class="kv-row"> <div class="kv-label"><span class="text-danger me-1">*</span> 결제코드</div><div class="kv-sep"></div> <div class="kv-value"> PAY-202602-0001 </div> </div> <div class="kv-row"> <div class="kv-label"><span class="text-danger me-1">*</span> 거래ID</div><div class="kv-sep"></div> <div class="kv-value"> TXN-TOSS-8F3A21 </div> </div> <div class="kv-row"> <div class="kv-label"><span class="text-danger me-1">*</span> 이메일</div><div class="kv-sep"></div> <div class="kv-value"> user@example.com </div> </div> <div class="kv-row"> <div class="kv-label">계정 타이틀</div><div class="kv-sep"></div> <div class="kv-value"> 김민수 영어학원 / ABC 클래스 </div> </div> <div class="kv-row"> <div class="kv-label">사용자명</div><div class="kv-sep"></div> <div class="kv-value"> 김민수 </div> </div> <div class="kv-row"> <div class="kv-label">전화번호</div><div class="kv-sep"></div> <div class="kv-value"> 010-1234-5678 </div> </div> <div class="kv-row"> <div class="kv-label"><span class="text-danger me-1">*</span> PG사</div><div class="kv-sep"></div> <div class="kv-value"> 토스페이먼츠 </div> </div> <div class="kv-row"> <div class="kv-label"><span class="text-danger me-1">*</span> 결제액</div><div class="kv-sep"></div> <div class="kv-value"> ₩39,000 </div> </div> <!-- 이하 유지 --> <div class="kv-row"> <div class="kv-label"><span class="text-danger me-1">*</span> 환불액</div><div class="kv-sep"></div> <div class="kv-value"> <div class="inline-actions"> <input type="text" class="form-control" placeholder="예) ₩19,000 또는 $10" maxlength="20" style="max-width:260px;"> <button type="button" class="btn btn-outline-secondary" onclick="alert('이 버튼은 결제액 전액을 자동 입력합니다.');">전액</button> <button type="button" class="btn btn-outline-secondary" onclick="alert('이 버튼은 부분 환불 계산 팝업을 띄웁니다.');">부분환불</button> </div> <div class="form-text">* 부분환불 샘플을 지원합니다.</div> </div> </div> <div class="kv-row"> <div class="kv-label"><span class="text-danger me-1">*</span> 환불사유</div><div class="kv-sep"></div> <div class="kv-value"> <select class="form-select" style="max-width:260px;"> <option value="change">단순변심</option> <option value="dupe">중복결제</option> <option value="bad">서비스불만</option> <option value="etc">기타</option> </select> </div> </div> <div class="kv-row"> <div class="kv-label"><span class="text-danger me-1">*</span> 환불수단</div><div class="kv-sep"></div> <div class="kv-value"> <div class="radio-row"> <div class="form-check"> <input class="form-check-input" type="radio" name="refund_method" id="rm_origin" checked onchange="document.getElementById('bankPanel').style.display='none';"> <label class="form-check-label" for="rm_origin">원결제수단</label> </div> <div class="form-check"> <input class="form-check-input" type="radio" name="refund_method" id="rm_point" onchange="document.getElementById('bankPanel').style.display='none';"> <label class="form-check-label" for="rm_point">포인트</label> </div> <div class="form-check"> <input class="form-check-input" type="radio" name="refund_method" id="rm_bank" onchange="document.getElementById('bankPanel').style.display='block';"> <label class="form-check-label" for="rm_bank">계좌환불</label> </div> </div> <div id="bankPanel" class="panel" style="display:none;"> <div class="fw-semibold mb-2">계좌 정보</div> <div class="kv-list"> <div class="kv-row"> <div class="kv-label">은행</div><div class="kv-sep"></div> <div class="kv-value"> <input type="text" class="form-control" placeholder="예) 국민은행" style="max-width:260px;"> </div> </div> <div class="kv-row"> <div class="kv-label">계좌번호</div><div class="kv-sep"></div> <div class="kv-value"> <input type="text" class="form-control" placeholder="예) 123-456-789012" style="max-width:320px;"> </div> </div> <div class="kv-row"> <div class="kv-label">예금주</div><div class="kv-sep"></div> <div class="kv-value"> <input type="text" class="form-control" placeholder="예) 김민수" style="max-width:260px;"> </div> </div> </div> <div class="help-muted mt-2">* 계좌환불 선택 시에만 입력합니다.</div> </div> </div> </div> <div class="kv-row"> <div class="kv-label">환불상태</div><div class="kv-sep"></div> <div class="kv-value"> <div class="radio-row"> <div class="form-check"> <input class="form-check-input" type="radio" name="refund_status" id="rs_req" checked> <label class="form-check-label" for="rs_req">요청</label> </div> <div class="form-check"> <input class="form-check-input" type="radio" name="refund_status" id="rs_ing"> <label class="form-check-label" for="rs_ing">처리중</label> </div> <div class="form-check"> <input class="form-check-input" type="radio" name="refund_status" id="rs_done"> <label class="form-check-label" for="rs_done">완료</label> </div> <div class="form-check"> <input class="form-check-input" type="radio" name="refund_status" id="rs_reject"> <label class="form-check-label" for="rs_reject">거절</label> </div> </div> <div class="form-text">* 실제 완료시각은 완료 처리 후 기록됩니다.</div> </div> </div> <div class="kv-row"> <div class="kv-label">관리자 메모</div><div class="kv-sep"></div> <div class="kv-value"> <textarea class="form-control" rows="3" placeholder="내부 메모(선택)" style="max-width:640px;"></textarea> </div> </div> </div> <div class="border-top pt-3 mt-3 d-flex justify-content-center gap-2"> <a class="btn btn-outline-secondary" href="app.php?p=page/payment/pay_log.html">결제 리스트</a> <a class="btn btn-primary" href="#" onclick="return pa(event,'이 버튼은 환불을 등록합니다. (프로토타입)');">환불 등록</a> </div> <div class="form-text mt-2">* “환불 등록”을 클릭하면 리스트 혹은 상세화면으로 이동(예정)</div> </div> </div> </div> </div>
저장
페이지 추가
디렉토리
page (root)
page/account
page/main
page/marketing
page/ops
page/payment
page/product
page/settle
page/site
page/stats
* page/ 하위 1레벨 폴더만 선택
파일명
.html
* 영문 소문자/숫자/_/- 만, 최대 32자
비밀번호