카카오페이 api문의

String str = “”;
String url = “https://open-api.kakaopay.com/online/v1/payment/ready”;

	HttpHeaders http = new HttpHeaders();
	http.set("Authorization", "SECRET_KEY DEVC9D58FF66FEB4E104C4AD832A61ECBC4B917B");
	http.set("Content-Type", "application/json");
	
	 // 카카오페이 요청 양식
    MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();
    parameters.add("cid", "TC0ONETIME");
    parameters.add("partner_order_id", "1001");
    parameters.add("partner_user_id", "test01");
    parameters.add("item_name", "초코파이");
    parameters.add("quantity", "1");
    parameters.add("total_amount", "2200");
    parameters.add("vat_amount", "200");
    parameters.add("tax_free_amount", "0");
    parameters.add("approval_url", "http://localhost:8080/payment/success"); // 성공 시 redirect url
    parameters.add("cancel_url", "http://localhost:8080/payment/cancel"); // 취소 시 redirect url
    parameters.add("fail_url", "http://localhost:8080/payment/fail"); // 실패 시 redirect url

    // 파라미터, 헤더
    HttpEntity<MultiValueMap<String, String>> requestEntity = 
    						new HttpEntity<>(parameters, http);
 // 외부에 보낼 url
    RestTemplate restTemplate = new RestTemplate();
    
    KakaoReadyResponse kakaoReady = restTemplate.postForObject(
            "https://kapi.kakao.com/v1/payment/ready",
            requestEntity,
            KakaoReadyResponse.class);
	return kakaoReady;

이렇게 작성했고 controller에서는 getMapping으로
@Slf4j
@Controller
public class PayController {

@Autowired
private KaKaoService service;

@GetMapping("/kakaopay")
public String kakaoPay(Model model) {
	log.info("kakaopay () 실행");
	KakaoReadyResponse kakao = service.kakaoPayReady();
	
	log.info("{} dto" ,kakao);
	
	return "kakaoPay";
}
@GetMapping("/kakao/pay")
public String kakaoPayRe(String pg_token) {
	log.info("{}", pg_token);
	return "kakaoPay";
}


@GetMapping("/kakaoPaySuccess")
public String kakaoPaySuccess(String pg_token) {
	
	return "kakaoPay";
}

}
테스트모드로 작성했는데 web.client.HttpClientErrorException$Unauthorized: 401 Unauthorized: [no body] 이런 에러가 나오네요…어떻게 해야될까요

안녕하세요. 카카오페이 입니다.

문의주신 내용을 토대로 해당 key 값을 통해 로그확인결과, 최근 요청의 거절정보를 확인하였습니다.
에러내용은 아래와 같으며,
approval_url, cancel_url, fail_url에 사용되는 도메인에 대해 플랫폼에 정상등록되지 않아 발생되는에러입니다.
도메인등록 후 다시 해보시기 바랍니다.

에러로그.
“{“error_code”:-400,“error_message”:“API 호출값 중 유효하지 않은 값이 존재합니다. (body.approval_url: 사이트도메인으로 등록된 도메인이 포함된 URL이 아닙니다. (url: https://developers.kakao.com) ; body.cancel_url: 사이트도메인으로 등록된 도메인이 포함된 URL이 아닙니다. (url: https://developers.kakao.com) ; body.fail_url: 사이트도메인으로 등록된 도메인이 포함된 URL이 아닙니다. (url: https://developers.kakao.com))”}”

도메인등록. - 개발자사이트내 도메인등록부분 참고

감사합니다.

Talend api로 할 때는 정상적으로 가져옵니다. 단 스프링부트로 하니깐
.HttpClientErrorException$BadRequest: 400 Bad Request: “{“extras”:null,“error_message”:“invalid param(cid has invalid value)”,“error_code”:-400}”
image

안녕하세요. 카카오페이입니다.

관련내용 메일로 별도 문의주셔서, 메일로 회신드리도록 하겠습니다.

감사합니다.