View.cshtml 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. @page "{id:int}"
  2. @model Admin.Pages.Payments.Danal.Cancel.ViewModel
  3. @using Domain.Entities.Payments.ValueObject
  4. @using SharedKernel.Extensions
  5. @{
  6. ViewData["Title"] = "다날 취소 상세";
  7. string MethodName(PaymentMethod m) => m switch
  8. {
  9. PaymentMethod.Card => "신용카드",
  10. PaymentMethod.VirtualAccount => "가상계좌",
  11. PaymentMethod.Mobile => "휴대폰",
  12. PaymentMethod.Transfer => "계좌이체",
  13. PaymentMethod.NaverPay => "네이버페이",
  14. PaymentMethod.KakaoPay => "카카오페이",
  15. PaymentMethod.Payco => "페이코",
  16. PaymentMethod.Integrated => "통합",
  17. _ => "-"
  18. };
  19. }
  20. <div class="container">
  21. <h3>@ViewData["Title"]</h3>
  22. <hr />
  23. <partial name="_StatusMessage" />
  24. @if (Model.Data is null)
  25. {
  26. <div class="alert alert-danger">취소 내역을 불러올 수 없습니다.</div>
  27. }
  28. else
  29. {
  30. var cancel = Model.Data;
  31. var isSuccess = cancel.ResponseCode == "0000";
  32. <h5 class="mb-3">다날 취소 정보</h5>
  33. <div class="row mb-2">
  34. <label class="col-sm-2 col-form-label">PK</label>
  35. <div class="col-sm-10"><div class="form-control-plaintext">@cancel.ID</div></div>
  36. </div>
  37. <div class="row mb-2">
  38. <label class="col-sm-2 col-form-label">회원</label>
  39. <div class="col-sm-10"><div class="form-control-plaintext">[@cancel.MemberID] @(cancel.MemberName ?? "-") / @cancel.MemberEmail</div></div>
  40. </div>
  41. <div class="row mb-2">
  42. <label class="col-sm-2 col-form-label">결제 수단</label>
  43. <div class="col-sm-10"><div class="form-control-plaintext">@MethodName(cancel.Method)</div></div>
  44. </div>
  45. <div class="row mb-2">
  46. <label class="col-sm-2 col-form-label">취소 유형</label>
  47. <div class="col-sm-10">
  48. <div class="form-control-plaintext">
  49. @if (cancel.CancelType == Domain.Entities.Payments.Danal.ValueObject.DanalCancelType.Full)
  50. {
  51. <span class="badge bg-danger">전액 환불</span>
  52. }
  53. else
  54. {
  55. <span class="badge bg-warning text-dark">부분 환불</span>
  56. }
  57. </div>
  58. </div>
  59. </div>
  60. <div class="row mb-2">
  61. <label class="col-sm-2 col-form-label">거래번호</label>
  62. <div class="col-sm-10"><div class="form-control-plaintext">@cancel.TransactionID</div></div>
  63. </div>
  64. <div class="row mb-2">
  65. <label class="col-sm-2 col-form-label">주문번호</label>
  66. <div class="col-sm-10"><div class="form-control-plaintext">@cancel.OrderID</div></div>
  67. </div>
  68. <div class="row mb-2">
  69. <label class="col-sm-2 col-form-label">취소 요청 금액</label>
  70. <div class="col-sm-10"><div class="form-control-plaintext">@cancel.Amount.ToString("N0") 원</div></div>
  71. </div>
  72. <div class="row mb-2">
  73. <label class="col-sm-2 col-form-label">CPID</label>
  74. <div class="col-sm-10"><div class="form-control-plaintext">@cancel.MerchantID</div></div>
  75. </div>
  76. <div class="row mb-2">
  77. <label class="col-sm-2 col-form-label">취소 요청자</label>
  78. <div class="col-sm-10"><div class="form-control-plaintext">@(cancel.CancelRequester ?? "-")</div></div>
  79. </div>
  80. <div class="row mb-2">
  81. <label class="col-sm-2 col-form-label">취소 사유</label>
  82. <div class="col-sm-10"><div class="form-control-plaintext">@(cancel.CancelReason ?? "-")</div></div>
  83. </div>
  84. <hr />
  85. <h5 class="mb-3">다날 취소 응답</h5>
  86. @if (string.IsNullOrEmpty(cancel.ResponseCode))
  87. {
  88. <div class="alert alert-warning">취소 응답이 기록되지 않았습니다.</div>
  89. }
  90. else
  91. {
  92. <div class="row mb-2">
  93. <label class="col-sm-2 col-form-label">응답</label>
  94. <div class="col-sm-10">
  95. <div class="form-control-plaintext">
  96. @if (isSuccess)
  97. {
  98. <span class="badge bg-success">성공</span>
  99. }
  100. else
  101. {
  102. <span class="badge bg-danger">실패</span>
  103. }
  104. [@cancel.ResponseCode] @cancel.ResponseMessage
  105. </div>
  106. </div>
  107. </div>
  108. <div class="row mb-2">
  109. <label class="col-sm-2 col-form-label">원거래 ID</label>
  110. <div class="col-sm-10"><div class="form-control-plaintext">@(cancel.OriginalTransactionID ?? "-")</div></div>
  111. </div>
  112. <div class="row mb-2">
  113. <label class="col-sm-2 col-form-label">취소된 금액</label>
  114. <div class="col-sm-10">
  115. <div class="form-control-plaintext">@(cancel.CancelledAmount.HasValue ? cancel.CancelledAmount.Value.ToString("N0") + " 원" : "-")</div>
  116. </div>
  117. </div>
  118. <div class="row mb-2">
  119. <label class="col-sm-2 col-form-label">승인 일시</label>
  120. <div class="col-sm-10">
  121. <div class="form-control-plaintext">@(string.IsNullOrEmpty(cancel.TransDate) && string.IsNullOrEmpty(cancel.TransTime) ? "-" : $"{cancel.TransDate} {cancel.TransTime}")</div>
  122. </div>
  123. </div>
  124. <div class="row mb-2">
  125. <label class="col-sm-2 col-form-label">남은 금액 (Balance)</label>
  126. <div class="col-sm-10"><div class="form-control-plaintext">@(cancel.Balance.HasValue ? cancel.Balance.Value.ToString("N0") + " 원" : "-")</div></div>
  127. </div>
  128. <div class="row mb-2">
  129. <label class="col-sm-2 col-form-label">잔여 결제 (RemainedAmount)</label>
  130. <div class="col-sm-10"><div class="form-control-plaintext">@(cancel.RemainedAmount.HasValue ? cancel.RemainedAmount.Value.ToString("N0") + " 원" : "-")</div></div>
  131. </div>
  132. <div class="row mb-2">
  133. <label class="col-sm-2 col-form-label">승인 발생 일시</label>
  134. <div class="col-sm-10"><div class="form-control-plaintext">@(cancel.ApprovalDateTime ?? "-")</div></div>
  135. </div>
  136. }
  137. @if (cancel.UpdatedAt is not null)
  138. {
  139. <div class="row mb-2">
  140. <label class="col-sm-2 col-form-label">수정 일시</label>
  141. <div class="col-sm-10"><div class="form-control-plaintext">@cancel.UpdatedAt.GetDateAt()</div></div>
  142. </div>
  143. }
  144. <div class="row mb-2">
  145. <label class="col-sm-2 col-form-label">등록 일시</label>
  146. <div class="col-sm-10"><div class="form-control-plaintext">@cancel.CreatedAt.GetDateAt()</div></div>
  147. </div>
  148. <hr />
  149. <div class="d-grid gap-2 text-center d-md-block">
  150. <a href="/Payments/Danal/Cancel@(Request.QueryString)" class="btn btn-sm btn-secondary">뒤로가기</a>
  151. </div>
  152. <br />
  153. <br />
  154. <br />
  155. }
  156. </div>