이 튜토리얼은 집계된 데이터-열차 티켓 예약 인터페이스의 사용 프로세스를 보여주는 데 사용됩니다.
1. PHP 환경을 구성하세요. PHP 버전은 5.5 이상인 것이 좋습니다
2. 데이터 분리 - 기차표 예매 인터페이스 애플리케이션 키: https://www.juhe.cn/docs/api/id/173
3. 다음 코드는 과정을 이해하기 위한 것입니다. 직접 복사하거나 프로덕션 환경에서 사용하지 마세요. '신청한 키', <br>
'url' => 배열( <br>
'cityCode' => 'http://op.juhe.cn/trainTickets/cityCode', <br>
'ticketsAvailable' => 'http://op.juhe.cn/trainTickets/ticketsAvailable', <br>
'제출' => 'http://op.juhe.cn/trainTickets/submit', <br>
'orderStatus' => 'http://op.juhe.cn/trainTickets/orderStatus', <br>
'지불' => 'http://op.juhe.cn/trainTickets/pay', <br>
), <br>
); <br>
#1. 사이트 단축번호를 확인하세요 <br>
echo '여행계획: 2015년 7월 1일, 쑤저우를 출발해 칭다오를 목적지로 <br>
[객체 객체]';
echo '소주역과 칭다오역의 단축번호를 먼저 검색하세요 <br>
';
//소주역 단축번호 조회 <br>
$suzhouCodeResponse = post($config['url']['cityCode'], 'key='.$config['key'].'&stationName=쑤저우') <br>
$suzhouCodeArray = json_decode($suzhouCodeResponse, true) <br>
$suzhouCode = $suzhouCodeArray['결과']['코드'] <br>
echo '쑤저우 역의 단축 코드는 '.$suzhouCode'입니다. <br>
';
// 칭다오역 단축번호 조회 <br>
$qingdaoCodeResponse = post($config['url']['cityCode'], 'key='.$config['key'].'&stationName=칭다오') <br>
$qingdaoCodeArray = json_decode($suzhouCodeResponse, true) <br>
$qingdaoCode = $qingdaoCodeArray['결과']['코드'] <br>
echo '칭다오 역의 단축 코드는 '.$qingdaoCode'입니다. <br>
[객체 객체]';
#2. 남은 투표수 확인 <br>
echo '그럼 남은 티켓 정보를 조회해 보세요 <br>
';
$ticketsAvailableResponse = post($config['url']['ticketsAvailable'], <br>
'&key='.$config['키'] <br>
'&train_date=2015-07-01'. //날짜 형식에 주의하세요 <br>
'&from_station=SZH'. //이전 단계에서 찾은 쑤저우 역의 단축 코드는 SZH <br>
'&to_station=QDK' //이전 단계에서 찾은 칭다오 역의 단축 코드는 QDK <br>
); <br>
$ticketsAvailableArray = json_decode($ticketsAvailableResponse, true) <br>
echo '남은 티켓 정보 조회: <br>
';
print_r($ticketsAvailableArray['result']['list']) <br>
에코' <br>
[객체 객체]';
#3. 주문 제출 <br>
echo '주문 제출 <br>
';
echo '남은 티켓 정보를 토대로 G226 열차가 더 적합한 것으로 나타났습니다 <br>
';
echo 'G226 열차의 남은 티켓 세부정보를 확인하세요. 일부 필드에 주의가 필요합니다. <br>
';
echo 'start_station_name: 출발역, 상하이 훙차오 <br>
';
echo 'from_station_name: 우리가 출발하려는 역은 Suzhou North입니다. Suzhou가 아닙니다. <br>
';
echo 'from_station_code: OHH, 이는 쑤저우 역이 아닌 쑤저우 북역의 단축 코드이며, 주문 제출 시 전달되는 매개변수이기도 하다는 점 참고해주세요 <br>
';
$passengersArray = 배열(<br>
배열(<br>
'passengerid' => '1123', //승객의 일련번호. 승객이 여러 명인 경우 각 승객의 승객 번호는 고유해야 합니다. <br>
'passengersename' => 'Zhang San', //실명으로 바꿔주세요 <br>
'piaotype' => '1', //공식 홈페이지 문서에서 piaotype과 piaotypename의 대응관계를 잘 확인하시고, 착오가 없는지 확인해주세요<br>'piaotypename' => '성인티켓', <br>
'Passporttypeseid' => '1', //공식 홈페이지 문서에서passporttypeseid와passporttypeseidname의 대응관계를 잘 확인하시고, 착오가 없는지 확인해주세요<br>
'passporttypeseidname' => '2세대 신분증', <br>
'passportseno' => '420205199207231234', //실제 주민번호로 바꿔주세요 <br>
'price' => '763.5', //실제 가격을 입력하세요 <br>
'zwcode' => 'M', //선택한 열차에 그런 좌석이 있는지 확인해주세요 <br>
'zwname' => '퍼스트 클래스', <br>
), <br>
array( //두 번째 승객, 최대 5명 <br>
'승객 ID' => '2123', <br>
'승객 이름' => '이思', <br>
'피아오타입' => '1', <br>
'piaotypename' => '성인티켓', <br>
'passporttypeseid' => '1', <br>
'passporttypeseidname' => '2세대 신분증', <br>
'여권' => '23060519930621234', <br>
'가격' => '59.5', <br>
'zwcode' => 'M', <br>
'zwname' => '퍼스트 클래스', <br>
) <br>
); <br>
$postArray = 배열(<br>
'키' => $config['키'], <br>
'checi' => 'G226', //이전 쿼리에서는 G226이 더 많은 표를 얻은 것으로 나타났습니다 <br>
'from_station_code' => 'OHH', //출발역의 단축번호입니다. SZH(쑤저우)가 아니니 주의하세요 <br>
'from_station_name' => 'Suzhou North', //출발역 이름은 출발역 단축코드와 일치해야 합니다 <br>
'to_station_code' => 'QDK', //역 도착 단축번호 <br>
'to_station_name' => '칭다오', //도착역 이름은 도착역 단축코드와 일치해야 합니다 <br>
'train_date' => '2015-07-01', //기차 날짜, 시간 형식에 주의하세요 <br>
'승객' => json_encode($passengersArray, JSON_UNESCAPED_UNICODE), <br>
); <br>
$postStr = '' <br>
foreach($postArray as $key => $value) { <br>
$postStr .= '&'.$key.'='.$value <br>
} <br>
//에코 $postStr;exit;
$submit = post($config['url']['submit'], $postStr) <br>
//에코 $submit;exit;
echo '[객체 객체]' <br>
/* 일반 출력 예시 <br>
{ <br>
"reason": "성공적인 복귀", <br>
"결과": { <br>
"orderid": "1433493562439" //나중에 이 주문 번호를 기준으로 처리 상태를 확인할 수 있습니다 <br>
}, <br>
"오류 코드": 0 <br>
} <br>
*/ <br>
#4. 주문상태 확인 <br>
echo '주문 상태 확인 <br>
';
//주문번호를 본인의 주문번호로 바꿔주세요 <br>
$status = post($config['url']['orderStatus'], 'key='.$config['key'].'&orderid=1433493562439') <br>
에코 $상태;#5. 티켓을 요청하세요(총액이 귀하의 계정에서 공제됩니다). 이 인터페이스에서 데이터를 요청하기 전에 주문이 결제되었는지 확인하세요. <br>
echo '[객체 객체]티켓 발권 요청 (주문 현황을 확인하고 좌석 점유 성공 여부를 아는 전제) <br>
';
$pay = post($config['url']['pay'], 'key='.$config['key'].'&orderid=1433493562439') <br>
에코 $지불 <br>