Spring Boot 3.4.0
Java 21
MySQL 8
JPA
public interface PaymentPort {
// 결제 요청
PaymentResponse payment(PaymentRequest payload, PaymentAdapterRunnable<BaseResponse> runnable);
// 결제 조회
ReadResponse read(ReadRequest payload);
// 환불 요청
RefundResponse refund(RefundRequest payload, PaymentAdapterRunnable<RefundResponse> runnable);
// 결제 청구서 카카오톡 전송
KakaoTalkResponse sendBill(TalkRequest payload, PaymentAdapterRunnable<KakaoTalkResponse> runnable);
// 결제 청구서 파기
DestroyResponse destroy(
DestroyRequest payload, PaymentAdapterRunnable<DestroyResponse> successRunnable);
// 결제 요청 결과 Callback
default PaymentCallbackResponse callback(PaymentCallbackRequest payload, String hash) {
return null;
}
}