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] 이런 에러가 나오네요…어떻게 해야될까요
