| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- @page
- @model Admin.Pages.Config.Payment.IndexModel
- @{
- ViewData["Title"] = "결제 설정";
- string KeyPlaceholder(bool isSet) => isSet ? "설정됨 — 변경할 때만 입력하세요" : "미설정 — 키를 입력하세요";
- }
- <div class="container">
- <h3>@ViewData["Title"]</h3>
- <hr />
- <div asp-validation-summary="ModelOnly" class="text-danger"></div>
- <partial name="_StatusMessage" />
- <form name="f_admin_write" id="fAdminWrite" class="mt-2" method="post" autocomplete="off" accept-charset="UTF-8">
- <!-- 토스페이먼츠 -->
- <details class="adm-section" open>
- <summary class="fs-5">토스페이먼츠 (Toss Payments)</summary>
- <div class="adm-section__body">
- <div class="form-text text-muted mb-3">
- 키는 저장 시 암호화됩니다. 이미 설정된 키는 화면에 표시되지 않으며, <strong>빈 칸으로 저장하면 기존 키가 유지</strong>됩니다.
- </div>
- <div class="row mb-2">
- <label asp-for="Input.Toss.TossPayMode" class="col-sm-2 col-form-label">결제 환경</label>
- <div class="col-sm-10">
- <select asp-for="Input.Toss.TossPayMode" class="form-select">
- <option value="">-- 선택 --</option>
- <option value="test">테스트 (Test)</option>
- <option value="live">운영 (Live)</option>
- </select>
- <span asp-validation-for="Input.Toss.TossPayMode" class="text-danger"></span>
- </div>
- </div>
- <div class="row mb-2">
- <label asp-for="Input.Toss.TestClientKey" class="col-sm-2 col-form-label">Test Client Key</label>
- <div class="col-sm-10">
- <input asp-for="Input.Toss.TestClientKey" type="text" class="form-control" autocomplete="off" placeholder="@KeyPlaceholder(Model.KeyState.HasTestClientKey)" />
- <span asp-validation-for="Input.Toss.TestClientKey" class="text-danger"></span>
- </div>
- </div>
- <div class="row mb-2">
- <label asp-for="Input.Toss.TestSecretKey" class="col-sm-2 col-form-label">Test Secret Key</label>
- <div class="col-sm-10">
- <input asp-for="Input.Toss.TestSecretKey" type="password" class="form-control" autocomplete="new-password" placeholder="@KeyPlaceholder(Model.KeyState.HasTestSecretKey)" />
- <span asp-validation-for="Input.Toss.TestSecretKey" class="text-danger"></span>
- </div>
- </div>
- <div class="row mb-2">
- <label asp-for="Input.Toss.LiveClientKey" class="col-sm-2 col-form-label">Live Client Key</label>
- <div class="col-sm-10">
- <input asp-for="Input.Toss.LiveClientKey" type="text" class="form-control" autocomplete="off" placeholder="@KeyPlaceholder(Model.KeyState.HasLiveClientKey)" />
- <span asp-validation-for="Input.Toss.LiveClientKey" class="text-danger"></span>
- </div>
- </div>
- <div class="row mb-2">
- <label asp-for="Input.Toss.LiveSecretKey" class="col-sm-2 col-form-label">Live Secret Key</label>
- <div class="col-sm-10">
- <input asp-for="Input.Toss.LiveSecretKey" type="password" class="form-control" autocomplete="new-password" placeholder="@KeyPlaceholder(Model.KeyState.HasLiveSecretKey)" />
- <span asp-validation-for="Input.Toss.LiveSecretKey" class="text-danger"></span>
- </div>
- </div>
- <div class="form-text text-muted">
- <ul class="mb-0">
- <li>Client Key 는 결제위젯 호출용으로 프론트엔드에 전달됩니다.</li>
- <li>Secret Key 는 승인/취소/조회 API 인증에 사용됩니다. 외부에 노출되지 않도록 주의하세요.</li>
- <li>키 발급: 토스페이먼츠 개발자센터 → 내 개발정보 → API 키</li>
- </ul>
- </div>
- </div>
- </details>
- <div class="row">
- <div class="col text-center p-3">
- <button type="submit" class="btn btn-success">저장하기</button>
- </div>
- </div>
- <br />
- </form>
- </div>
|