diff --git a/boot/api/src/main/java/com/clip/api/payment/feign/dto/PaymentObject.java b/boot/api/src/main/java/com/clip/api/payment/feign/dto/PaymentObject.java index f7c32d72..5aad4219 100644 --- a/boot/api/src/main/java/com/clip/api/payment/feign/dto/PaymentObject.java +++ b/boot/api/src/main/java/com/clip/api/payment/feign/dto/PaymentObject.java @@ -2,12 +2,14 @@ import lombok.Builder; import lombok.Data; +import lombok.ToString; import java.time.OffsetDateTime; import java.util.UUID; @Builder @Data +@ToString public class PaymentObject { private String mId; private String lastTransactionKey; diff --git a/boot/api/src/main/java/com/clip/api/payment/service/PaymentServiceFacade.java b/boot/api/src/main/java/com/clip/api/payment/service/PaymentServiceFacade.java index 0490acdc..108a72b2 100644 --- a/boot/api/src/main/java/com/clip/api/payment/service/PaymentServiceFacade.java +++ b/boot/api/src/main/java/com/clip/api/payment/service/PaymentServiceFacade.java @@ -7,8 +7,10 @@ import com.clip.order.entity.OneThingOrder; import com.clip.order.entity.RandomOrder; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +@Slf4j @Service @RequiredArgsConstructor public class PaymentServiceFacade { @@ -27,6 +29,7 @@ public void confirm(long userId, PaymentDto paymentDto) { .amount(randomOrder.getDiscountedPrice()) .build() ); + log.info("paymentObject info: {}", paymentObject.toString()); userPaymentService.updateRandomOrderStatus(userId, paymentObject); } case ONETHING -> { @@ -37,6 +40,7 @@ public void confirm(long userId, PaymentDto paymentDto) { .amount(oneThingOrder.getDiscountedPrice()) .build() ); + log.info("paymentObject info: {}", paymentObject.toString()); userPaymentService.updateOneThingOrderStatus(userId, paymentObject); } } diff --git a/boot/api/src/main/java/com/clip/global/config/feign/FeignConfig.java b/boot/api/src/main/java/com/clip/global/config/feign/FeignConfig.java index 6b5ea0c6..7f0ad786 100644 --- a/boot/api/src/main/java/com/clip/global/config/feign/FeignConfig.java +++ b/boot/api/src/main/java/com/clip/global/config/feign/FeignConfig.java @@ -1,13 +1,17 @@ package com.clip.global.config.feign; import feign.RequestInterceptor; +import feign.codec.ErrorDecoder; +import lombok.extern.slf4j.Slf4j; import org.bouncycastle.util.encoders.Base64; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.nio.charset.StandardCharsets; +import java.util.Objects; +@Slf4j @Configuration public class FeignConfig { @@ -19,6 +23,15 @@ public RequestInterceptor authorizationHeader() { return requestTemplate -> requestTemplate.header("Authorization", getEncodedSecretKey()); } + @Bean + public ErrorDecoder errorDecoder() { + return (methodKey, response) -> { + String errorMessage = Objects.isNull(response.body()) ? "No response body" : response.body().toString(); + log.error("Feign client error: Method Key - {}, Status Code - {}, Response Body - {}", methodKey, response.status(), errorMessage); + return new ErrorDecoder.Default().decode(methodKey, response); + }; + } + private String getEncodedSecretKey() { String key = tossSecretKey + ":"; return "Basic " + new String(Base64.encode(key.getBytes(StandardCharsets.UTF_8)));