From 10290088138db4d815cadcaaf190c9d0ba0ac01e Mon Sep 17 00:00:00 2001 From: JONGHAN Date: Wed, 3 Jun 2026 00:48:27 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EB=B6=80=ED=95=98=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=EC=9A=A9=20=EA=B2=B0=EC=A0=9C=20=EB=AA=A9?= =?UTF-8?q?=EC=97=85=20API=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kt/config/SecurityConfiguration.java | 2 +- .../payment/MockPaymentController.java | 47 +++++++++++++++++++ src/main/resources/application-local.yml | 4 ++ src/main/resources/application.yml | 9 +++- 4 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/kt/controller/payment/MockPaymentController.java diff --git a/src/main/java/com/kt/config/SecurityConfiguration.java b/src/main/java/com/kt/config/SecurityConfiguration.java index a6a03a0..f2b4e12 100644 --- a/src/main/java/com/kt/config/SecurityConfiguration.java +++ b/src/main/java/com/kt/config/SecurityConfiguration.java @@ -28,7 +28,7 @@ public class SecurityConfiguration { private static final String[] GET_PERMIT_ALL = {"/api/health/**", "/swagger-ui.html","/swagger-ui/**", "/v3/api-docs/**", "/actuator/**", "/payment-*.html", "/api/payments/client-key", "/*.css", "/api/chats", "/api/chats/**"}; - private static final String[] POST_PERMIT_ALL = {"/api/users/auth/signup", "/api/users/auth/login","/api/admin/users/auth/signup", "/api/admin/users/auth/login","/api/users/reissue", "/api/payments/confirm"}; + private static final String[] POST_PERMIT_ALL = {"/api/users/auth/signup", "/api/users/auth/login","/api/admin/users/auth/signup", "/api/admin/users/auth/login","/api/users/reissue", "/api/payments/confirm", "/api/mock/**"}; private static final String[] PUT_PERMIT_ALL = {"/api/v1/public/**"}; private static final String[] PATCH_PERMIT_ALL = {"/api/v1/public/**"}; private static final String[] DELETE_PERMIT_ALL = {"/api/v1/public/**"}; diff --git a/src/main/java/com/kt/controller/payment/MockPaymentController.java b/src/main/java/com/kt/controller/payment/MockPaymentController.java new file mode 100644 index 0000000..875ee2d --- /dev/null +++ b/src/main/java/com/kt/controller/payment/MockPaymentController.java @@ -0,0 +1,47 @@ +package com.kt.controller.payment; + +import java.util.Map; +import java.util.UUID; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.kt.common.response.ApiResult; +import com.kt.service.payment.PaymentFacade; + +import lombok.RequiredArgsConstructor; + +@RestController +@RequestMapping("/api/mock/payments") +@RequiredArgsConstructor +@ConditionalOnProperty(name = "mock.payment.enabled", havingValue = "true") +public class MockPaymentController { + + private final PaymentFacade paymentFacade; + + @PostMapping("/confirm") + public ApiResult mockConfirm(@RequestBody MockPaymentRequest request) { + Map fakeTossResponse = Map.of( + "paymentKey", "mock_" + UUID.randomUUID(), + "totalAmount", request.amount(), + "method", request.method() + ); + + Long paymentId = paymentFacade.completePayment( + fakeTossResponse, request.userId(), request.orderId() + ); + + return ApiResult.ok(paymentId); + } + + public record MockPaymentRequest( + Long userId, + Long orderId, + Long amount, + String method + ) { + } +} diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 552d7b4..ce63e80 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -55,5 +55,9 @@ toss: secret-key: ${payments.secret-key:test_gsk_docs_OaPz8L5KdmQXkzRz3y47BMw6} api-url: ${payments.api-url:https://api.tosspayments.com/v1/payments} +mock: + payment: + enabled: true + server: port: 8080 \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 4dc09b4..832c868 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -20,4 +20,11 @@ slack: log-channel: ${slack.channel} server: - port: 8080 \ No newline at end of file + port: 8080 + +ratelimit: + enabled: false + +mock: + payment: + enabled: false From 8a17addfeb79c7334d99794ec2f9c923d0cc1e21 Mon Sep 17 00:00:00 2001 From: JONGHAN Date: Thu, 4 Jun 2026 09:20:25 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=EB=B6=80=ED=95=98=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=EC=9A=A9=20=EA=B2=B0=EC=A0=9C=20=EB=AA=A9=EC=97=85=20?= =?UTF-8?q?API=20=EC=B6=94=EA=B0=80(git=20action=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/resources/application-test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/resources/application-test.yml b/src/test/resources/application-test.yml index afc411c..d53a8ea 100644 --- a/src/test/resources/application-test.yml +++ b/src/test/resources/application-test.yml @@ -35,6 +35,9 @@ spring: # host: ${redis.host:localhost} # port: ${redis.port:6379} +ratelimit: + enabled: true + jwt: secret: kt-cloud-tech-up-shopping-202511171107 access-token-expiration: 300000