@page "{id:int}" @model Admin.Pages.Payments.Danal.Confirm.ViewModel @using Domain.Entities.Payments.ValueObject @using SharedKernel.Extensions @{ ViewData["Title"] = "다날 결제 상세"; string MethodName(PaymentMethod m) => m switch { PaymentMethod.Card => "신용카드", PaymentMethod.VirtualAccount => "가상계좌", PaymentMethod.Mobile => "휴대폰", PaymentMethod.Transfer => "계좌이체", PaymentMethod.NaverPay => "네이버페이", PaymentMethod.KakaoPay => "카카오페이", PaymentMethod.Payco => "페이코", PaymentMethod.Integrated => "통합", _ => "-" }; }

@ViewData["Title"]


@if (Model.Data is null) {
결제 내역을 불러올 수 없습니다.
} else { var confirm = Model.Data.Confirm; var cancel = Model.Data.Cancel; var isCardLike = confirm.Method is PaymentMethod.Card or PaymentMethod.NaverPay or PaymentMethod.KakaoPay or PaymentMethod.Payco; var isMobile = confirm.Method == PaymentMethod.Mobile; var isTransfer = confirm.Method == PaymentMethod.Transfer; var isVAccount = confirm.Method == PaymentMethod.VirtualAccount;
다날 결제 요청
@confirm.ID
[@confirm.MemberID] @(confirm.MemberName ?? "-") / @confirm.MemberEmail
@MethodName(confirm.Method)
@confirm.TransactionID
@confirm.OrderID
@confirm.Amount.ToString("N0") 원
@confirm.MerchantID
@(string.IsNullOrEmpty(confirm.OrderName) ? "-" : confirm.OrderName)

다날 결제 응답
@if (string.IsNullOrEmpty(confirm.ResponseCode)) {
다날 결제 요청 후 최종 승인 응답이 기록되지 않았습니다.
} else {
[@confirm.ResponseCode] @confirm.ResponseMessage
@(confirm.TotalAmount.HasValue ? confirm.TotalAmount.Value.ToString("N0") + " 원" : "-")
@(confirm.DiscountAmount.HasValue ? confirm.DiscountAmount.Value.ToString("N0") + " 원" : "-")
@(confirm.UserName ?? "-")
@(string.IsNullOrEmpty(confirm.TransDate) && string.IsNullOrEmpty(confirm.TransTime) ? "-" : $"{confirm.TransDate} {confirm.TransTime}")
@if (isCardLike) {
@(string.IsNullOrEmpty(confirm.CardName) ? "-" : $"[{confirm.CardCode}] {confirm.CardName}")
@(confirm.CardNo ?? "-")
@(confirm.InstallmentMonths.HasValue ? $"{confirm.InstallmentMonths} 개월" : "-")
@(confirm.ApproveNo ?? "-")
} @if (isMobile) {
@(confirm.ApprovalDateTime ?? "-")
@(confirm.AuthKey ?? "-")
} @if (isTransfer) {
@(confirm.AccountNumber ?? "-")
@(confirm.BankCode ?? "-")
@(confirm.UserId ?? "-")
@(confirm.UserEmail ?? "-")
} @if (isVAccount) {
@(confirm.BankName ?? "-")
@(string.IsNullOrEmpty(confirm.ExpireDate) && string.IsNullOrEmpty(confirm.ExpireTime) ? "-" : $"{confirm.ExpireDate} {confirm.ExpireTime}")
@(confirm.VirtualAccountNumber ?? "-")
@(confirm.UseCashReceipt == "Y" ? "사용" : confirm.UseCashReceipt == "N" ? "미사용" : "-")
} @if (confirm.UpdatedAt is not null) {
@confirm.UpdatedAt.GetDateAt()
}
@confirm.CreatedAt.GetDateAt()

다날 결제 취소
@if (cancel is not null) { } else if (confirm.OrderStatus == PaymentStatus.Paid) { var isForcedCancel = confirm.ResponseCode != "0000"; if (isForcedCancel) { }
@Html.AntiForgeryToken()
} else if (confirm.OrderStatus == PaymentStatus.Cancelled) { } else if (confirm.OrderStatus == PaymentStatus.Failed) { } else if (confirm.OrderStatus is PaymentStatus.Pending or PaymentStatus.WaitingDeposit) { } else { } }



}
@section Scripts { }