우선 진에어 부터 시도중인데 x-csrf-token과 cookie값 처리를 어떻게 하셨었는지 어쭈어 봐도 괜찮을까요...? 다른 항공사는 아직 감을 못잡았는데 진에어는 어떻게 요청을 보내야 하는지는 찾았는데 이 두 값이 문제이네요 ㅠㅠㅠ
크롬 또는 Firefox 또는 edge를 에서 F12 누르면
개발툴 뜹니다.
여기서 디버거 탭 선택하시고.. 왼쪽에 소스창을 확인하고
저장소 탭 선택하면 왼쪽에 로컬저장소,세션저장소,캐시저장소,indexed DB, 쿠키 항목들
있어요.. 이거 확인하시고...
네트워크 탭 선택하시고.. 웹 페이지 눌렀을때 패킷들이 어떻게 왔다 갔다 하는지 확인하시고
대충 파악되면
디버거 탭에서 브레이크포인트 걸고
이 상태에서 웹 페이지가 서버와 어떻게 왔다 갔다 하는지
일일이 확인 해야 해요.
진에어는 쉬운 편인데^^;;; 최근에 화면이 이쁘게 개편이 되긴 했습니다.
내부 로직은 예전(2년전과 거의 바뀐게 없어요)
서버에서 생성된 token이 클라이언트로 넘어오면 웹브라워저 내부의 저장소의
어디에 저장되는지 확인해보세요.
저의 경우는 단순하게 사용자 정보와 날짜정보만 가지고
해당 화면까지 이동만 하고..
해당 시간의 위치까지 화면 스크롤 하고 끝이에요.
여기서 가격 누르고 로그인 시키고 할수도 있는데.
이부분은 너무 케이스 바이 케이스라..
사용자에게 자유롭게 할 수 있도록 남겨 놨어요.
더 쉽게 설명하자면
사용자가 항공사 앱을 키지 않고
그냥 스마트폰에 있는 많이 사용하는 웹브라우저(크롬, 삼성인터넷 등등)으로
항공사 홈피에 접속해서 검색하고
로그인 하고 결제하는 거죠..
그런데 이걸 웹뷰로 하면
제한 사항이 아주 많아서 제대로 구현이 되지 않아요.
각각의 항공사 별로 별에별 희한한 로직으로 구현되어 있어서..
진에어만 해도 결제 시스템이 여러게 있을꺼에요.
이거 연동테스트 다 해봐야 되니..
조언을 드리자면...
Firefox 개발자용 브라우저 있습니다.
Chrome 개발툴도 괜찮습니다만.
약간 차이가 있어요.
보통 API가 호출되고 다음 페이지로 redirect 되기 때문에..
실질적인 API가 어떻게 호출되는지 알아내기가 쉽지 않아요.
무식하게 redirect 넘어가기 전에 웹을 중단 시키든지..
아니면..
네트웍 패킷 캡쳐 프로그램을 띄워 놓고
모니터링 하시면 최종 API를 찾을 수 있어요.
API를 찾아다고 하더라도..
인증키, 쿠키정보, 관련 세션정보가 맞지 않으면
해당 API를 호출하더라도 오류 발생합니다.
각각의 항공사들 마다 특징이 있기 때문에.
정말로 -_- 트릭이 필요합니다.
제일 힘든곳이 대한항공입니다!! 앵귤러사용해서
리버스하기가 매우 어려워요.
때려치울까 하다가...
한 2년정도 삽질했어요.ㅎㅎㅎ 머리가 나쁘다 보니.. 손발이 고생을...