# 고속버스 예매 가이드 ## 이 기능으로 할 수 있는 일 - KOBUS 고속버스 터미널/노선 후보 확인 - 배차 시간표, 버스 등급, 잔여석, 요금 확인 - 좌석 선택 단계 진입 가능 여부 확인 - 필요한 경우 임시 좌석 선점 후 공식 결제정보 입력 페이지로 handoff - 진행하지 않을 때 임시 선점 해제 ## 먼저 필요한 것 - 별도 사용자 계정/비밀번호는 기본 조회·좌석 단계에서 필요하지 않음 - 결제는 공식 KOBUS 페이지에서 사용자가 직접 진행 - 브라우저 자동화보다 `https://www.kobus.co.kr` 공식 HTTP 흐름을 우선 사용 ## 입력값 - 출발 터미널 - 도착 터미널 - 날짜: `YYYYMMDD` - 희망 시간대 - 인원 수와 좌석 선호 ## 기본 흐름 1. 쿠키 jar를 만들고 KOBUS 메인/예매 페이지를 열어 세션을 시작한다. 2. `POST /mrs/readRotLinInf.ajax` 로 터미널/노선 코드를 확인한다. 3. `POST /mrs/alcnSrch.do` 로 배차를 조회한다. 4. 결과 HTML의 `fnSatsChc(...)` 인자를 파싱해 후보를 정리한다. 5. 선택 후보는 `POST /mrs/satschc.do` 로 좌석/요금 단계 진입을 확인한다. 6. 사용자가 원하면 `POST /mrs/setPcpy.ajax` 로 임시 선점 후 공식 결제정보 입력 페이지 링크를 제공한다. 7. 사용자가 진행하지 않으면 `POST /mrs/cancPcpy.ajax` 로 선점을 해제한다. ## 주의할 점 - 결제 자동화는 포함하지 않는다. 공식 페이지의 결제 직전 단계까지 보조하는 assisted checkout 흐름이다. - KOBUS 모바일 페이지는 좁은 화면에서 `/mblIdx.do` 로 리다이렉트할 수 있어 helper 링크 caveat를 확인한다. - KOBUS 터미널 코드는 티머니 시외버스 코드와 다르므로 혼용하지 않는다. - stateless POST보다 쿠키와 referer를 유지하는 흐름이 안정적이다.