프로젝트 21일차
카카오 데모를 적용해보면서 배운것들을 적어본다.
저번에 공공api에서 데이터를 받은것과 같은 과정이었다. 달라진점은 post방식으로 진행한다는 점이다.
자바의 URL클래스
URL(String url)
문자열이 지정하는 자원에 대해 url을 생성한다.
con.setDoOutput(true); 전송할 데이터가 있다는 옵션을 설정하기 위해 true로 정한다.
false가 기본값이다. post로 데이터를 전송하려면 설정해야 한다.
POST 요청을 할 때에는 OutputStream 객체로 데이터를 전송한다.
카카오페이에서는 content type으로 application/x-www-form-urlencoded로 지정하므로 json이 아닌 key-value tuple(요청파라미터?)로 인코딩되는 값을 전달해야 한다.
따라서 전송할 데이터가 문자열이므로 DataOutputStream를 활용하여 데이터를 설정한다.
.writeBytes(String값)으로 data를 저장
.flush()로 data를 전달
.close()로 stream닫기
이제 전송이 되었으니 사용자 인증을 위한 화면을 띄어야 한다.
요청에 대한 응답값으로
HTTP/1.1 200 OK
Content-type: application/json;charset=UTF-8
{
"tid": "T1234567890123456789",
"next_redirect_app_url": "https://mockup-pg-web.kakao.com/v1/xxxxxxxxxx/aInfo",
"next_redirect_mobile_url": "https://mockup-pg-web.kakao.com/v1/xxxxxxxxxx/mInfo",
"next_redirect_pc_url": "https://mockup-pg-web.kakao.com/v1/xxxxxxxxxx/info",
"android_app_scheme": "kakaotalk://kakaopay/pg?url=https://mockup-pg-web.kakao.com/v1/xxxxxxxxxx/order",
"ios_app_scheme": "kakaotalk://kakaopay/pg?url=https://mockup-pg-web.kakao.com/v1/xxxxxxxxxx/order",
"created_at": "2016-11-15T21:18:22"
}
이므로 응답코드가 200일때 응답값 받는 객체를 설정하면 된다.
그리고 반환값을 string값으로 변환 후 string값을 return한다.
프로젝트는 다음 피씨 웹에서 진행하므로 자바스크립트에서 받은 json값의 next_redirect_pc_url를 호출하면 된다.