TossPaymentApiDto.java
package com.newbit.payment.command.application.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Map;
public class TossPaymentApiDto {
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class WidgetUrlRequest {
private Long amount;
private String orderId;
private String orderName;
private String successUrl;
private String failUrl;
}
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class PaymentConfirmRequest {
private String paymentKey;
private String orderId;
private Long amount;
}
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public static class PaymentResponse {
private String version;
private String paymentKey;
private String type;
private String orderId;
private String orderName;
private String mId;
private String currency;
private String method;
private Long totalAmount;
private Long balanceAmount;
private String status;
private String requestedAt;
private String approvedAt;
private Boolean useEscrow;
private String lastTransactionKey;
private Long suppliedAmount;
private Long vat;
private Boolean cultureExpense;
private Long taxFreeAmount;
private Long taxExemptionAmount;
private Boolean isPartialCancelable;
private Map<String, Object> card;
private Map<String, Object> virtualAccount;
private Map<String, Object> receipt;
private Map<String, Object> checkout;
private Map<String, Object> easyPay;
private String country;
private Map<String, Object> failure;
public LocalDateTime getApprovedAtDateTime() {
if (approvedAt == null || approvedAt.isEmpty()) {
return null;
}
return LocalDateTime.parse(approvedAt.substring(0, 19));
}
public LocalDateTime getRequestedAtDateTime() {
if (requestedAt == null || requestedAt.isEmpty()) {
return null;
}
return LocalDateTime.parse(requestedAt.substring(0, 19));
}
}
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class PaymentCancelRequest {
private String cancelReason;
private Long cancelAmount;
private Boolean refundableAmount;
private String taxFreeAmount;
}
}