전임자의 success url 에 큰 의문이 있습니다.
전임자가 퇴사하여 인수인계받게 된 코드입니다. 토스 결제 관련 확인할 것이 있어 코드를 살펴보았는데요
프론트단에서 successUrl 호출하면 {{origin}}/success?orderId={ORDER_ID}&paymentKey={PAYMENT_KEY}&amount={AMOUNT} 으로 결제 정보가 들어오는 것까진 확인했습니다.
그 후가 문제인데, successUrl 의 내용이 현재 아래와 같이 개발되어 있습니다(스프링부트 controller 쪽입니다).
(전략)
String encodedAuthHeader = Base64.getEncoder().encodeToString(SECRET_KEY.getBytes());
HttpClient client = HttpClientBuilder.create().build();
HttpPost postRequest = new HttpPost("https://api.tosspayments.com/v1/payments/" + paymentKey); //POST 메소드 URL 생성
postRequest.setHeader("Content-Type", "application/json");
postRequest.addHeader("Authorization", "Basic " + encodedAuthHeader); // token 이용시
postRequest.setEntity(new StringEntity("{"amount":" + amount + ","orderId":"" + orderId + ""}")); //json 메시지 입력
HttpResponse response = client.execute(postRequest);
(후략)
succeessUrl 에서는 v1/payments/confirm 을 호출하여 결제 승인을 내야 한다고 알고 있습니다. 저 API는 get방식일 경우 결제 정보를 받아오는 것이고 post 는 API 문서 상 없는 것 같은데, 지금까지 successUrl 에서 v1/payments/confirm 을 전혀 호출하고 있지 않았음에도 불구하고 결제가 성공적으로 이루어지고 돈까지 정산받았다고 합니다.
이대로 둬도 상관없는 부분인가요, confirm 을 호출해야 하나요. 물론 이대로 두면 안 될 것 같긴 한데, 결제가 지금까지(한 1년 된 것 같습니다) 정상적으로 이루어진 것이 큰 의문입니다.
프론트단에서 successUrl 호출하면 {{origin}}/success?orderId={ORDER_ID}&paymentKey={PAYMENT_KEY}&amount={AMOUNT} 으로 결제 정보가 들어오는 것까진 확인했습니다.
그 후가 문제인데, successUrl 의 내용이 현재 아래와 같이 개발되어 있습니다(스프링부트 controller 쪽입니다).
(전략)
String encodedAuthHeader = Base64.getEncoder().encodeToString(SECRET_KEY.getBytes());
HttpClient client = HttpClientBuilder.create().build();
HttpPost postRequest = new HttpPost("https://api.tosspayments.com/v1/payments/" + paymentKey); //POST 메소드 URL 생성
postRequest.setHeader("Content-Type", "application/json");
postRequest.addHeader("Authorization", "Basic " + encodedAuthHeader); // token 이용시
postRequest.setEntity(new StringEntity("{"amount":" + amount + ","orderId":"" + orderId + ""}")); //json 메시지 입력
HttpResponse response = client.execute(postRequest);
(후략)
succeessUrl 에서는 v1/payments/confirm 을 호출하여 결제 승인을 내야 한다고 알고 있습니다. 저 API는 get방식일 경우 결제 정보를 받아오는 것이고 post 는 API 문서 상 없는 것 같은데, 지금까지 successUrl 에서 v1/payments/confirm 을 전혀 호출하고 있지 않았음에도 불구하고 결제가 성공적으로 이루어지고 돈까지 정산받았다고 합니다.
이대로 둬도 상관없는 부분인가요, confirm 을 호출해야 하나요. 물론 이대로 두면 안 될 것 같긴 한데, 결제가 지금까지(한 1년 된 것 같습니다) 정상적으로 이루어진 것이 큰 의문입니다.
