간단 소스 편집기
허용:
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/pay_log.html
<!-- /page/payment/pay_log.html --> <!-- 상단 검색 박스 --> <style> /* 검색영역 전용: 세로 1열(상하 1레코드) + 라벨/입력 좌우 분리 */ .filter-stack { display:flex; flex-direction:column; gap:.65rem; } .filter-rowline { display:flex; gap:12px; align-items:flex-start; } .filter-rowline .filter-label { width:140px; padding-top:6px; font-weight:600; color:#374151; white-space:nowrap; } .filter-rowline .filter-input { flex:1; min-width:0; text-align:left; } .chk-row { display:flex; flex-wrap:wrap; gap:.55rem .9rem; } .chk-row .form-check { margin:0; } .filter-actions { display:flex; justify-content:center; margin-top:12px; } .filter-actions .btn { min-width:180px; font-weight:700; } .table-paylog td, .table-paylog th { white-space:nowrap; } .code-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size:.9rem; } /* 결제 상세 모달 KV */ .kv-list{ display:flex; flex-direction:column; gap:.55rem; } .kv-row{ display:flex; align-items:flex-start; gap:12px; } .kv-label{ width:140px; font-weight:600; color:#374151; white-space:nowrap; padding-top:2px; } .kv-sep{ width:1px; background:rgba(0,0,0,.08); } .kv-value{ flex:1; min-width:0; } </style> <div class="d-flex align-items-center justify-content-between mb-3"> <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="card mb-3 filter-card"> <div class="card-body"> <div class="filter-stack"> <!-- 키워드 검색 --> <div class="filter-rowline"> <div class="filter-label">키워드 검색</div> <div class="filter-input"> <div class="d-flex gap-2 flex-wrap"> <select class="form-select" style="max-width:180px;" id="kwField"> <option value="account_title">계정 타이틀</option> <option value="account_id">계정 아이디</option> <option value="pay_code">결제코드</option> <option value="pay_id">거래 ID</option> <option value="name">사용자명</option> <option value="email">이메일</option> <option value="domain">도메인</option> <option value="name">사용자명</option> <option value="phone">전화번호</option> </select> <input type="text" class="form-control" placeholder="검색어를 입력하세요" id="kwText" maxlength="60" style="max-width:600px;" /> </div> </div> </div> <!-- 결제기간 --> <div class="filter-rowline"> <div class="filter-label">결제기간</div> <div class="filter-input"> <div class="d-flex gap-2 flex-wrap"> <input type="date" class="form-control" style="max-width:200px;" id="payFrom" /> <div class="d-flex align-items-center text-muted">~</div> <input type="date" class="form-control" style="max-width:200px;" id="payTo" /> <div class="text-muted d-flex align-items-center">* 기본값은 빈 값입니다.</div> </div> </div> </div> <!-- 결제구분 --> <div class="filter-rowline"> <div class="filter-label">결제구분</div> <div class="filter-input"> <div class="chk-row" data-group="pay_type"> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pt_all" checked> <label class="form-check-label" for="pt_all">전체</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pt_m" checked> <label class="form-check-label" for="pt_m">월 결제(자동)</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pt_y" checked> <label class="form-check-label" for="pt_y">년 결제</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pt_point" checked> <label class="form-check-label" for="pt_point">포인트 충전</label> </div> </div> </div> </div> <!-- 결제상태 --> <div class="filter-rowline"> <div class="filter-label">결제상태</div> <div class="filter-input"> <div class="chk-row" data-group="pay_status"> <div class="form-check"> <input class="form-check-input" type="checkbox" id="ps_all" checked> <label class="form-check-label" for="ps_all">전체</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="ps_ok" checked> <label class="form-check-label" for="ps_ok">성공</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="ps_fail" checked> <label class="form-check-label" for="ps_fail">실패</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="ps_cancel" checked> <label class="form-check-label" for="ps_cancel">취소</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="ps_refund" checked> <label class="form-check-label" for="ps_refund">환불</label> </div> </div> </div> </div> <!-- 결제수단 --> <div class="filter-rowline"> <div class="filter-label">결제수단</div> <div class="filter-input"> <div class="chk-row" data-group="pay_method"> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pm_all" checked> <label class="form-check-label" for="pm_all">전체</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pm_card" checked> <label class="form-check-label" for="pm_card">카드</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pm_bank" checked> <label class="form-check-label" for="pm_bank">계좌이체</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pm_vbank" checked> <label class="form-check-label" for="pm_vbank">가상계좌</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pm_easy" checked> <label class="form-check-label" for="pm_easy">간편결제</label> </div> </div> </div> </div> <!-- PG사 --> <div class="filter-rowline"> <div class="filter-label">PG사</div> <div class="filter-input"> <div class="chk-row" data-group="pg"> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pg_all" checked> <label class="form-check-label" for="pg_all">전체</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pg_toss" checked> <label class="form-check-label" for="pg_toss">토스페이먼츠</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pg_stripe" checked> <label class="form-check-label" for="pg_stripe">Stripe</label> </div> <div class="form-check"> <input class="form-check-input" type="checkbox" id="pg_paypal" checked> <label class="form-check-label" for="pg_paypal">PayPal</label> </div> </div> </div> </div> <!-- 버튼 --> <div class="filter-actions"> <div class="d-flex gap-2"> <button class="btn btn-primary" type="button">검색</button> <button class="btn btn-outline-secondary" type="button">조건 초기화</button> </div> </div> </div> </div> </div> <!-- 선수금 출력(리스트 상단) --> <div class="d-flex align-items-center justify-content-start gap-2 mb-2 flex-wrap"> <div class="text-muted fw-semibold">선수금 출력</div> <div class="d-flex align-items-center gap-2"> <div class="text-muted">기준일:</div> <div class="input-group" style="width:220px;"> <input type="date" class="form-control" id="prepayBaseDate" /> <button class="btn btn-outline-secondary" type="button" title="달력">📅</button> </div> <button class="btn btn-outline-secondary" type="button" onclick="alert('프로토타입: 기준일 기준 선수금 엑셀 다운로드');"> Excel 다운로드 </button> </div> </div> <!-- 리스트 --> <div class="card"> <div class="card-header d-flex align-items-center justify-content-between flex-wrap gap-2"> <div class="text-muted"> 검색결과 <span class="fw-semibold">128</span>건 / 총 <span class="fw-semibold">4,920</span>건 </div> <div class="d-flex align-items-center gap-2"> <div class="text-muted small">리스팅 개수</div> <select class="form-select form-select-sm" style="width:120px;"> <option value="10">10</option> <option value="20" selected>20</option> <option value="30">30</option> <option value="50">50</option> </select> </div> </div> <div class="card-body"> <div class="table-responsive"> <table class="table table-hover align-middle mb-0 table-paylog"> <thead> <tr class="text-muted text-center"> <th style="width:70px;">번호</th> <th>계정 ID</th> <th>이메일</th> <th>계정 타이틀</th> <th>결제코드</th> <th>거래ID</th> <th>사용자명</th> <th>전화번호</th> <th>결제구분</th> <th>결제상태</th> <th>결제수단</th> <th>PG사</th> <th>결제액</th> <th>결제시각</th> <th style="width:90px;">환불</th> <th style="width:90px;">상세</th> </tr> </thead> <tbody class="text-center"> <tr> <td class="fw-semibold">10</td> <td>example10</td> <td>pay10@example.com</td> <td>반응형 테스트 사이트</td> <td class="code-mono">PAY-202602-0010</td> <td class="code-mono">TXN-TOSS-8F3A21</td> <td>송하늘</td> <td>010-2310-1370</td> <td><span class="badge text-bg-light">월 결제(자동)</span></td> <td><span class="badge text-bg-success">성공</span></td> <td>카드</td> <td>토스페이먼츠</td> <td class="text-end">₩39,000</td> <td>2026-02-09 10:21:14</td> <td><a class="btn btn-outline-primary btn-sm" href="app.php?p=page/payment/refund_form.html">환불등록</a></td> <td> <a class="btn btn-outline-secondary btn-sm js-open-paydetail" href="#" data-bs-toggle="modal" data-bs-target="#payDetailModal" data-no="10" data-account_id="example10" data-email="pay10@example.com" data-title="반응형 테스트 사이트" data-pay_code="PAY-202602-0010" data-txn_id="TXN-TOSS-8F3A21" data-name="송하늘" data-phone="010-2310-1370" data-pay_type="월 결제(자동)" data-pay_status="성공" data-pay_method="카드" data-pg="토스페이먼츠" data-amount="₩39,000" data-paid_at="2026-02-09 10:21:14" >상세</a> </td> </tr> <tr> <td class="fw-semibold">9</td> <td>example9</td> <td>pay09@example.com</td> <td>데모 사이트 003</td> <td class="code-mono">PAY-202602-0009</td> <td class="code-mono">TXN-STRIPE-7C19D0</td> <td>김민수</td> <td>010-2301-1037</td> <td><span class="badge text-bg-light">년 결제</span></td> <td><span class="badge text-bg-danger">실패</span></td> <td>간편결제</td> <td>Stripe</td> <td class="text-end">$299</td> <td>2026-02-09 09:58:02</td> <td><a class="btn btn-outline-primary btn-sm" href="app.php?p=page/payment/refund_form.html">환불등록</a></td> <td> <a class="btn btn-outline-secondary btn-sm js-open-paydetail" href="#" data-bs-toggle="modal" data-bs-target="#payDetailModal" data-no="9" data-account_id="example9" data-email="pay09@example.com" data-title="데모 사이트 003" data-pay_code="PAY-202602-0009" data-txn_id="TXN-STRIPE-7C19D0" data-name="김민수" data-phone="010-2301-1037" data-pay_type="년 결제" data-pay_status="실패" data-pay_method="간편결제" data-pg="Stripe" data-amount="$299" data-paid_at="2026-02-09 09:58:02" >상세</a> </td> </tr> <tr> <td class="fw-semibold">8</td> <td>example8</td> <td>pay08@example.com</td> <td>데모 사이트 002</td> <td class="code-mono">PAY-202602-0008</td> <td class="code-mono">TXN-PAYPAL-5A8B11</td> <td>이서연</td> <td>010-2302-1074</td> <td><span class="badge text-bg-light">포인트 충전</span></td> <td><span class="badge text-bg-warning">취소</span></td> <td>계좌이체</td> <td>PayPal</td> <td class="text-end">$50</td> <td>2026-02-08 22:14:39</td> <td><a class="btn btn-outline-primary btn-sm" href="app.php?p=page/payment/refund_form.html">환불등록</a></td> <td> <a class="btn btn-outline-secondary btn-sm js-open-paydetail" href="#" data-bs-toggle="modal" data-bs-target="#payDetailModal" data-no="8" data-account_id="example8" data-email="pay08@example.com" data-title="데모 사이트 002" data-pay_code="PAY-202602-0008" data-txn_id="TXN-PAYPAL-5A8B11" data-name="이서연" data-phone="010-2302-1074" data-pay_type="포인트 충전" data-pay_status="취소" data-pay_method="계좌이체" data-pg="PayPal" data-amount="$50" data-paid_at="2026-02-08 22:14:39" >상세</a> </td> </tr> <tr> <td class="fw-semibold">7</td> <td>example7</td> <td>pay07@example.com</td> <td>반응형 테스트 사이트</td> <td class="code-mono">PAY-202602-0007</td> <td class="code-mono">TXN-TOSS-0C2F9A</td> <td>오세훈</td> <td>010-2307-1259</td> <td><span class="badge text-bg-light">월 결제(자동)</span></td> <td><span class="badge text-bg-secondary">환불</span></td> <td>카드</td> <td>토스페이먼츠</td> <td class="text-end">₩15,000</td> <td>2026-02-08 18:03:11</td> <td><a class="btn btn-outline-primary btn-sm" href="app.php?p=page/payment/refund_form.html">환불등록</a></td> <td> <a class="btn btn-outline-secondary btn-sm js-open-paydetail" href="#" data-bs-toggle="modal" data-bs-target="#payDetailModal" data-no="7" data-account_id="example7" data-email="pay07@example.com" data-title="반응형 테스트 사이트" data-pay_code="PAY-202602-0007" data-txn_id="TXN-TOSS-0C2F9A" data-name="오세훈" data-phone="010-2307-1259" data-pay_type="월 결제(자동)" data-pay_status="환불" data-pay_method="카드" data-pg="토스페이먼츠" data-amount="₩15,000" data-paid_at="2026-02-08 18:03:11" >상세</a> </td> </tr> <tr> <td class="fw-semibold">6</td> <td>example6</td> <td>pay06@example.com</td> <td>데모 사이트 001</td> <td class="code-mono">PAY-202602-0006</td> <td class="code-mono">TXN-STRIPE-2E0A77</td> <td>박지훈</td> <td>010-2303-1111</td> <td><span class="badge text-bg-light">년 결제</span></td> <td><span class="badge text-bg-success">성공</span></td> <td>가상계좌</td> <td>Stripe</td> <td class="text-end">$199</td> <td>2026-02-08 11:42:56</td> <td><a class="btn btn-outline-primary btn-sm" href="app.php?p=page/payment/refund_form.html">환불등록</a></td> <td> <a class="btn btn-outline-secondary btn-sm js-open-paydetail" href="#" data-bs-toggle="modal" data-bs-target="#payDetailModal" data-no="6" data-account_id="example6" data-email="pay06@example.com" data-title="데모 사이트 001" data-pay_code="PAY-202602-0006" data-txn_id="TXN-STRIPE-2E0A77" data-name="박지훈" data-phone="010-2303-1111" data-pay_type="년 결제" data-pay_status="성공" data-pay_method="가상계좌" data-pg="Stripe" data-amount="$199" data-paid_at="2026-02-08 11:42:56" >상세</a> </td> </tr> <tr> <td class="fw-semibold">5</td> <td>example5</td> <td>pay05@example.com</td> <td>반응형 테스트 사이트</td> <td class="code-mono">PAY-202602-0005</td> <td class="code-mono">TXN-TOSS-9B10C4</td> <td>최유진</td> <td>010-2304-1148</td> <td><span class="badge text-bg-light">포인트 충전</span></td> <td><span class="badge text-bg-danger">실패</span></td> <td>계좌이체</td> <td>토스페이먼츠</td> <td class="text-end">₩100,000</td> <td>2026-02-07 15:22:04</td> <td><a class="btn btn-outline-primary btn-sm" href="app.php?p=page/payment/refund_form.html">환불등록</a></td> <td> <a class="btn btn-outline-secondary btn-sm js-open-paydetail" href="#" data-bs-toggle="modal" data-bs-target="#payDetailModal" data-no="5" data-account_id="example5" data-email="pay05@example.com" data-title="반응형 테스트 사이트" data-pay_code="PAY-202602-0005" data-txn_id="TXN-TOSS-9B10C4" data-name="최유진" data-phone="010-2304-1148" data-pay_type="포인트 충전" data-pay_status="실패" data-pay_method="계좌이체" data-pg="토스페이먼츠" data-amount="₩100,000" data-paid_at="2026-02-07 15:22:04" >상세</a> </td> </tr> <tr> <td class="fw-semibold">4</td> <td>example4</td> <td>pay04@example.com</td> <td>데모 사이트 003</td> <td class="code-mono">PAY-202602-0004</td> <td class="code-mono">TXN-PAYPAL-18D3F2</td> <td>한지민</td> <td>010-2306-1222</td> <td><span class="badge text-bg-light">월 결제(자동)</span></td> <td><span class="badge text-bg-success">성공</span></td> <td>간편결제</td> <td>PayPal</td> <td class="text-end">$29</td> <td>2026-02-07 09:10:33</td> <td><a class="btn btn-outline-primary btn-sm" href="app.php?p=page/payment/refund_form.html">환불등록</a></td> <td> <a class="btn btn-outline-secondary btn-sm js-open-paydetail" href="#" data-bs-toggle="modal" data-bs-target="#payDetailModal" data-no="4" data-account_id="example4" data-email="pay04@example.com" data-title="데모 사이트 003" data-pay_code="PAY-202602-0004" data-txn_id="TXN-PAYPAL-18D3F2" data-name="한지민" data-phone="010-2306-1222" data-pay_type="월 결제(자동)" data-pay_status="성공" data-pay_method="간편결제" data-pg="PayPal" data-amount="$29" data-paid_at="2026-02-07 09:10:33" >상세</a> </td> </tr> <tr> <td class="fw-semibold">3</td> <td>example3</td> <td>pay03@example.com</td> <td>반응형 테스트 사이트</td> <td class="code-mono">PAY-202601-0133</td> <td class="code-mono">TXN-TOSS-3D7E8A</td> <td>윤아름</td> <td>010-2308-1296</td> <td><span class="badge text-bg-light">년 결제</span></td> <td><span class="badge text-bg-warning">취소</span></td> <td>카드</td> <td>토스페이먼츠</td> <td class="text-end">₩299,000</td> <td>2026-02-06 20:44:18</td> <td><a class="btn btn-outline-primary btn-sm" href="app.php?p=page/payment/refund_form.html">환불등록</a></td> <td> <a class="btn btn-outline-secondary btn-sm js-open-paydetail" href="#" data-bs-toggle="modal" data-bs-target="#payDetailModal" data-no="3" data-account_id="example3" data-email="pay03@example.com" data-title="반응형 테스트 사이트" data-pay_code="PAY-202601-0133" data-txn_id="TXN-TOSS-3D7E8A" data-name="윤아름" data-phone="010-2308-1296" data-pay_type="년 결제" data-pay_status="취소" data-pay_method="카드" data-pg="토스페이먼츠" data-amount="₩299,000" data-paid_at="2026-02-06 20:44:18" >상세</a> </td> </tr> <tr> <td class="fw-semibold">2</td> <td>example2</td> <td>pay02@example.com</td> <td>데모 사이트 002</td> <td class="code-mono">PAY-202601-0102</td> <td class="code-mono">TXN-STRIPE-BC0F14</td> <td>강도윤</td> <td>010-2309-1333</td> <td><span class="badge text-bg-light">포인트 충전</span></td> <td><span class="badge text-bg-secondary">환불</span></td> <td>가상계좌</td> <td>Stripe</td> <td class="text-end">$100</td> <td>2026-02-06 14:02:09</td> <td><a class="btn btn-outline-primary btn-sm" href="app.php?p=page/payment/refund_form.html">환불등록</a></td> <td> <a class="btn btn-outline-secondary btn-sm js-open-paydetail" href="#" data-bs-toggle="modal" data-bs-target="#payDetailModal" data-no="2" data-account_id="example2" data-email="pay02@example.com" data-title="데모 사이트 002" data-pay_code="PAY-202601-0102" data-txn_id="TXN-STRIPE-BC0F14" data-name="강도윤" data-phone="010-2309-1333" data-pay_type="포인트 충전" data-pay_status="환불" data-pay_method="가상계좌" data-pg="Stripe" data-amount="$100" data-paid_at="2026-02-06 14:02:09" >상세</a> </td> </tr> <tr> <td class="fw-semibold">1</td> <td>example1</td> <td>pay01@example.com</td> <td>반응형 테스트 사이트</td> <td class="code-mono">PAY-202601-0001</td> <td class="code-mono">TXN-PAYPAL-7E2AA0</td> <td>정현우</td> <td>010-2305-1185</td> <td><span class="badge text-bg-light">월 결제(자동)</span></td> <td><span class="badge text-bg-danger">실패</span></td> <td>카드</td> <td>PayPal</td> <td class="text-end">₩39,000</td> <td>2026-02-05 08:31:47</td> <td><a class="btn btn-outline-primary btn-sm" href="app.php?p=page/payment/refund_form.html">환불등록</a></td> <td> <a class="btn btn-outline-secondary btn-sm js-open-paydetail" href="#" data-bs-toggle="modal" data-bs-target="#payDetailModal" data-no="1" data-account_id="example1" data-email="pay01@example.com" data-title="반응형 테스트 사이트" data-pay_code="PAY-202601-0001" data-txn_id="TXN-PAYPAL-7E2AA0" data-name="정현우" data-phone="010-2305-1185" data-pay_type="월 결제(자동)" data-pay_status="실패" data-pay_method="카드" data-pg="PayPal" data-amount="₩39,000" data-paid_at="2026-02-05 08:31:47" >상세</a> </td> </tr> </tbody> </table> </div> <nav class="mt-3 d-flex justify-content-center" aria-label="pagination"> <ul class="pagination pagination-sm mb-0"> <li class="page-item disabled"><a class="page-link" href="#">이전</a></li> <li class="page-item active"><a class="page-link" href="#">1</a></li> <li class="page-item"><a class="page-link" href="#">2</a></li> <li class="page-item"><a class="page-link" href="#">3</a></li> <li class="page-item"><a class="page-link" href="#">4</a></li> <li class="page-item"><a class="page-link" href="#">5</a></li> <li class="page-item"><a class="page-link" href="#">다음</a></li> </ul> </nav> </div> </div> <!-- 결제 상세 모달 --> <div class="modal fade" id="payDetailModal" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-lg modal-dialog-scrollable"> <div class="modal-content"> <div class="modal-header"> <div> <div class="fw-semibold">결제 상세</div> <div class="text-muted small" id="pd_subtitle">-</div> </div> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> <div class="kv-list"> <div class="kv-row"> <div class="kv-label">번호</div><div class="kv-sep"></div> <div class="kv-value" id="pd_no">-</div> </div> <div class="kv-row"> <div class="kv-label">계정 ID</div><div class="kv-sep"></div> <div class="kv-value code-mono" id="pd_account_id">-</div> </div> <div class="kv-row"> <div class="kv-label">이메일</div><div class="kv-sep"></div> <div class="kv-value" id="pd_email">-</div> </div> <div class="kv-row"> <div class="kv-label">계정 타이틀</div><div class="kv-sep"></div> <div class="kv-value" id="pd_title">-</div> </div> <hr class="my-2" /> <div class="kv-row"> <div class="kv-label">결제코드</div><div class="kv-sep"></div> <div class="kv-value code-mono" id="pd_pay_code">-</div> </div> <div class="kv-row"> <div class="kv-label">거래ID</div><div class="kv-sep"></div> <div class="kv-value code-mono" id="pd_txn_id">-</div> </div> <hr class="my-2" /> <div class="kv-row"> <div class="kv-label">사용자명</div><div class="kv-sep"></div> <div class="kv-value" id="pd_name">-</div> </div> <div class="kv-row"> <div class="kv-label">전화번호</div><div class="kv-sep"></div> <div class="kv-value" id="pd_phone">-</div> </div> <hr class="my-2" /> <div class="kv-row"> <div class="kv-label">결제구분</div><div class="kv-sep"></div> <div class="kv-value" id="pd_pay_type">-</div> </div> <div class="kv-row"> <div class="kv-label">결제상태</div><div class="kv-sep"></div> <div class="kv-value" id="pd_pay_status">-</div> </div> <div class="kv-row"> <div class="kv-label">결제수단</div><div class="kv-sep"></div> <div class="kv-value" id="pd_pay_method">-</div> </div> <div class="kv-row"> <div class="kv-label">PG사</div><div class="kv-sep"></div> <div class="kv-value" id="pd_pg">-</div> </div> <hr class="my-2" /> <div class="kv-row"> <div class="kv-label">결제액</div><div class="kv-sep"></div> <div class="kv-value fw-semibold" id="pd_amount">-</div> </div> <div class="kv-row"> <div class="kv-label">결제시각</div><div class="kv-sep"></div> <div class="kv-value" id="pd_paid_at">-</div> </div> <hr class="my-2" /> <div class="text-muted small"> * 프로토타입용 결제 상세 모달입니다. </div> </div> </div> <div class="modal-footer"> <a class="btn btn-outline-primary" id="pd_refund_btn" href="app.php?p=page/payment/refund_form.html">환불등록</a> <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">닫기</button> </div> </div> </div> </div> <script> // 결제 상세 모달 값 채우기(프로토타입) (function(){ function setText(id, v){ var el = document.getElementById(id); if (!el) return; el.textContent = (v === undefined || v === null || v === "") ? "-" : v; } document.addEventListener("click", function(e){ var a = e.target.closest(".js-open-paydetail"); if (!a) return; e.preventDefault(); var d = a.dataset || {}; setText("pd_no", d.no); setText("pd_account_id", d.account_id); setText("pd_email", d.email); setText("pd_title", d.title); setText("pd_pay_code", d.pay_code); setText("pd_txn_id", d.txn_id); setText("pd_name", d.name); setText("pd_phone", d.phone); setText("pd_pay_type", d.pay_type); setText("pd_pay_status", d.pay_status); setText("pd_pay_method", d.pay_method); setText("pd_pg", d.pg); setText("pd_amount", d.amount); setText("pd_paid_at", d.paid_at); var subtitle = (d.title ? d.title : "-") + " / " + (d.pay_code ? d.pay_code : "-"); setText("pd_subtitle", subtitle); // 모달 내 환불 버튼(현재는 공통 링크 고정) var rb = document.getElementById("pd_refund_btn"); if (rb) rb.setAttribute("href", "app.php?p=page/payment/refund_form.html"); // 모달 강제 show (부트스트랩 JS 로드된 경우) if (window.bootstrap && document.getElementById("payDetailModal")) { var m = bootstrap.Modal.getOrCreateInstance(document.getElementById("payDetailModal")); m.show(); } }, false); })(); </script>
저장
페이지 추가
디렉토리
page (root)
page/account
page/main
page/marketing
page/ops
page/payment
page/product
page/settle
page/site
page/stats
* page/ 하위 1레벨 폴더만 선택
파일명
.html
* 영문 소문자/숫자/_/- 만, 최대 32자
비밀번호