코드를 실행시 아래와 같은 에러 메시지가 발생하는데 혹시 url생성이 잘못된건지 궁금합니다.
RestTemplate restTemplate = new RestTemplate();
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory()); // 정확한 에러 파악을 위해 생성
// Server Request Header : 서버 요청 헤더
HttpHeaders headers = new HttpHeaders();
headers.add("Host",Host); // 어드민 키
headers.add("Authorization",kakaoAdminKey );
headers.add("Content-type", "application/json;charset=utf-8");
// Server Request Body : 서버 요청 본문
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("cid", "TC0ONETIME"); // 가맹점 코드 - 테스트용
params.add("partner_order_id", "1001"); // 주문 번호
params.add("partner_user_id", "goguma"); // 회원 아이디
params.add("item_name", "비둘기"); // 상품 명
params.add("quantity", "1"); // 상품 수량
params.add("total_amount", "20000"); // 상품 가격
params.add("tax_free_amount", "100"); // 상품 비과세 금액
params.add("approval_url", "http://localhost:8080"); // 성공시 url
params.add("cancel_url", "http://localhost:8080/kakaoPayCancle"); // 실패시 url
params.add("fail_url", "http://localhost:8080/kakaoPayFail");
// 헤더와 바디 붙이기
log.info("헤더 값: : "+headers);
log.info("파라미터 값 : "+params);
HttpEntity<MultiValueMap<String, String>> body = new HttpEntity<MultiValueMap<String, String>>(headers,params);
log.info("body 내용 : "+body);
try {
kakaoPayDTO = restTemplate.postForObject(new URI(Host), body, KakaoPayDTO.class);
log.info(kakaoPayDTO.getNext_redirect_pc_url());
return kakaoPayDTO.getNext_redirect_pc_url();
} catch (RestClientException e) {
log.info("RestClientException : "+e);
} catch (URISyntaxException e) {
log.info("URISyntaxException"+e);
}
2024-04-04T17:13:43.660+09:00 INFO 6392 — [nio-8080-exec-2] c.p.backend.service.KakaoPayService : body 내용 : <[Host:“https://open-api.kakaopay.com/online/v1/payment/ready”, Authorization:“SECRET_KEY DEV1A4C28485C32709A0D888EDD62DEE89D9A5D3”, Content-type:“application/json;charset=utf-8”],[cid:“TC0ONETIME”, partner_order_id:“1001”, partner_user_id:“goguma”, item_name:“비둘기”, quantity:“1”, total_amount:“20000”, tax_free_amount:“100”, approval_url:“http://localhost:8080”, cancel_url:“http://localhost:8080/kakaoPayCancle”, fail_url:“http://localhost:8080/kakaoPayFail”]>
2024-04-04T17:13:43.926+09:00 INFO 6392 — [nio-8080-exec-2] c.p.backend.service.KakaoPayService : RestClientException : org.springframework.web.client.HttpClientErrorException$BadRequest: 400 Bad Request: “{“error_code”:-400,“error_message”:“잘못된 요청”}”