초보적인 질문 죄송합니다ㅠ 카카오페이 연결하는데 애먹고 있는데요,
안드로이드 자바 이용해서 만들고 있는 중이고, php 같은 서버를 이용하지 않고 자바 코드에서 카카오 서버로 바로 필요한 파라미터를 전달하는 방식으로 구현하려고 합니다.
아래와 같은 코드를 통해 서버와 연결하고 있는데요, 로그캣을 확인해보니 400에러가 뜨고 있습니다. 즉 어드민 키는 연결이 되었지만 CID와 같은 파라미터들이 정상적으로 안오고 있다고 해석했는데 제가 사용한 파라미터 형식에 문제가 있는건가요? 아니면 http 통신 자체에 문제가 있는건가요? 답변 주시면 감사하겠습니다.
public class RequestHttpURLConnection {
public String request(String _url, ContentValues _params) {
HttpURLConnection urlConn = null;
StringBuffer sbParams = new StringBuffer();
sbParams.append("cid").append("=").append("TC0ONETIME");
sbParams.append("partner_order_id").append("=").append("aa").append("&");
sbParams.append("partner_user_id").append("=").append("aa").append("&");
sbParams.append("item_name").append("=").append("aa").append("&");
sbParams.append("quantity").append("=").append("1").append("&");
sbParams.append("total_amount").append("=").append("2").append("&");
sbParams.append("tax_free_amount").append("=").append("0").append("&");
sbParams.append("approval_url").append("=").append("https://kapi.kakao.com/v1/payment/approve").append("&");
sbParams.append("cancel_url").append("=").append("https://kapi.kakao.com/v1/payment/cancel").append("&");
sbParams.append("fail_url").append("=").append("https://kapi.kakao.com/v1/payment/fail");
try {
URL url = new URL(_url);
urlConn = (HttpURLConnection) url.openConnection();
urlConn.setRequestMethod("POST");
urlConn.setRequestProperty("Authorization", "KakaoAK ce3e353ebd992fbabaa8eafd68ded58e");
urlConn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
PrintWriter pw = new PrintWriter(new OutputStreamWriter(urlConn.getOutputStream(), "UTF-8"));
pw.write(sbParams.toString());
pw.flush();
int responseCode = urlConn.getResponseCode();
System.out.println(responseCode);
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "UTF-8"));
StringBuilder builder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
System.out.println(reader);
} catch (MalformedURLException e) { // for URL.
e.printStackTrace();
} catch (IOException e) { // for openConnection().
e.printStackTrace();
} finally {
if (urlConn != null)
urlConn.disconnect();
}
return null;
}
}