|
|
|
@ -209,200 +209,7 @@ class innerTrainSearch extends CI_Controller{
|
|
|
|
|
return json_encode($return_data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// //携程数据接口
|
|
|
|
|
// public function ctripApi($date=null,$from=null,$to=null,$return=false){
|
|
|
|
|
// if(!$date || !$from || !$to){
|
|
|
|
|
// header("HTTP/1.1 404 Not Found");
|
|
|
|
|
// exit('{"httpstatus":404,"data":{"seven":false,"cache":false,"result":[],"map":{}}}');
|
|
|
|
|
// }else{
|
|
|
|
|
// $isCache = false;
|
|
|
|
|
// $iseven = false;
|
|
|
|
|
// $cachedata = false;
|
|
|
|
|
// $now_time = time();
|
|
|
|
|
// $differ = (strtotime($date) - $now_time) / 86400;
|
|
|
|
|
// //屏蔽掉超过预售期的搜索,提高速度,2021-7-5 zp修改预售期为15天,不再是30天
|
|
|
|
|
// if($differ > 14){
|
|
|
|
|
// $date = date('Y-m-d',strtotime('+7day'));
|
|
|
|
|
// $iseven = true;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// //转换三字码为中文
|
|
|
|
|
// $this->load->model("ctrip_model");
|
|
|
|
|
// $FromName = $this->ctrip_model->ReplaceCodeToName($from);
|
|
|
|
|
// $ToName = $this->ctrip_model->ReplaceCodeToName($to);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if(!$FromName || !$ToName){
|
|
|
|
|
// header("HTTP/1.1 404 Not Found");
|
|
|
|
|
// exit('{"httpstatus":404,"data":{"seven":false,"cache":false,"result":[],"map":{}}}');
|
|
|
|
|
// }else{
|
|
|
|
|
// $FromName = $FromName->station_name;
|
|
|
|
|
// $ToName = $ToName->station_name;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// //生成请求链接
|
|
|
|
|
// $TimeStamp = time();
|
|
|
|
|
// $Sign = md5($TimeStamp.DATAKEY);
|
|
|
|
|
|
|
|
|
|
// $url = JSONRETURN.'SearchS2S/?From='.urlencode($FromName).'&To='.urlencode($ToName).'&DepartDate='.$date.'&User='.DATAUSER.'&TimeStamp='.$TimeStamp.'&Sign='.$Sign;
|
|
|
|
|
|
|
|
|
|
// $api_start_time = microtime(true);
|
|
|
|
|
|
|
|
|
|
// //获取数据
|
|
|
|
|
// $ResponseJson = GetPost_http($url,'','GET');
|
|
|
|
|
|
|
|
|
|
// $api_end_time = microtime(true);
|
|
|
|
|
|
|
|
|
|
// $ResponseData = json_decode($ResponseJson);
|
|
|
|
|
|
|
|
|
|
// $api_responsive_time = $api_end_time - $api_start_time;
|
|
|
|
|
|
|
|
|
|
// if(empty($ResponseData->Trains)){
|
|
|
|
|
// log_message('error','ctrip_trian|status:trains is empty |相应时间:'.$api_responsive_time);
|
|
|
|
|
// }else{
|
|
|
|
|
// log_message('error','ctrip_trian|status:'.$ResponseData->ResponseStatus->Ack.'|相应时间:'.$api_responsive_time);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// //定义返回的json
|
|
|
|
|
// $ReturnData = new stdClass();
|
|
|
|
|
// $ReturnData->httpstatus = 200;
|
|
|
|
|
// $ReturnData->data = new stdClass();
|
|
|
|
|
// $ReturnData->data->seven = $iseven;
|
|
|
|
|
// $ReturnData->data->cache = $isCache;
|
|
|
|
|
// $ReturnData->data->supplier = 'ctrip';
|
|
|
|
|
// $ReturnData->data->result = array();
|
|
|
|
|
// $ReturnData->data->map = new stdClass();
|
|
|
|
|
// $obj = array();
|
|
|
|
|
// $i = 0;
|
|
|
|
|
// $PriceStr = '';
|
|
|
|
|
|
|
|
|
|
// //数据解析
|
|
|
|
|
// if(!empty($ResponseData->Trains)){
|
|
|
|
|
// foreach ($ResponseData->Trains as $TrainInfo){
|
|
|
|
|
// $obj[$TrainInfo->FromTelcode] = $TrainInfo->FromStationName;
|
|
|
|
|
// $obj[$TrainInfo->ToTelcode] = $TrainInfo->ToStationName;
|
|
|
|
|
// $SeaType = '';
|
|
|
|
|
// //余数初始化为空
|
|
|
|
|
// $gjrwNum = $rwNum = $rzNum = $tdzNum = $wzNum = $yzNum = $edzNum = $ydzNum = $swzNum = $ywNum = $dwNum = $ydwNum = $edzNum = null;
|
|
|
|
|
// foreach($TrainInfo->Seats as $Seats){
|
|
|
|
|
// //从香港出发的 D/G 火车加价3%
|
|
|
|
|
// if($from == 'XJA'){
|
|
|
|
|
// if(stripos($TrainInfo->TrainNo, "G") !== false || stripos($TrainInfo->TrainNo, "D") !== false){
|
|
|
|
|
// $Seats->Price = $Seats->Price * 1.03;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '高级软卧上'){
|
|
|
|
|
// $gjrwXiaPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"6":"'.$gjrwXiaPrice.'","A6":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $gjrwNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '软卧上'){
|
|
|
|
|
// $rwPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"4":"'.$rwPrice.'","A4":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $rwNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '一等双软上'){
|
|
|
|
|
// $SeaType .= '"YDW":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $ydwNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '软座'){
|
|
|
|
|
// $rzPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"2":"'.$rzPrice.'","A2":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $rzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '特等座'){
|
|
|
|
|
// $SeaType .= '"P":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $tdzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '无座'){
|
|
|
|
|
// $SeaType .= '"WZ":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $wzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '硬座'){
|
|
|
|
|
// $yzPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"1":"'.$yzPrice.'","A1":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $yzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '二等座'){
|
|
|
|
|
// $SeaType .= '"O":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $edzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '一等座'){
|
|
|
|
|
// $SeaType .= '"M":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $ydzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '商务座'){
|
|
|
|
|
// $swzPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"9":"'.$swzPrice.'","A9":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $swzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '硬卧上'){
|
|
|
|
|
// $ywPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"3":"'.$ywPrice.'","A3":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $ywNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '二等双软上'){
|
|
|
|
|
// $SeaType .= '"EDW":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $erwNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '动卧上'){
|
|
|
|
|
// $SeaType .= '"F":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $dwNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// $PriceStr = $SeaType.'"train_no":'.'"'.$TrainInfo->TrainNo.'"';
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// //对返回的数据进行容错处理
|
|
|
|
|
// $gjrwNum = isset($gjrwNum) ? ticket_exchange($Seats->Price,$gjrwNum,$iseven) : '';
|
|
|
|
|
// $rwNum = isset($rwNum) ? ticket_exchange($Seats->Price,$rwNum,$iseven) : '';
|
|
|
|
|
// $rzNum = isset($rzNum) ? ticket_exchange($Seats->Price,$rzNum,$iseven) : '';
|
|
|
|
|
// $tdzNum = isset($tdzNum) ? ticket_exchange($Seats->Price,$tdzNum,$iseven) : '';
|
|
|
|
|
// $wzNum = isset($wzNum) ? ticket_exchange($Seats->Price,$wzNum,$iseven) : '';
|
|
|
|
|
// $ywNum = isset($ywNum) ? ticket_exchange($Seats->Price,$ywNum,$iseven) : '';
|
|
|
|
|
// $yzNum = isset($yzNum) ? ticket_exchange($Seats->Price,$yzNum,$iseven) : '';
|
|
|
|
|
// $edzNum = isset($edzNum) ? ticket_exchange($Seats->Price,$edzNum,$iseven) : '';
|
|
|
|
|
// $ydzNum = isset($ydzNum) ? ticket_exchange($Seats->Price,$ydzNum,$iseven) : '';
|
|
|
|
|
// $swzNum = isset($swzNum) ? ticket_exchange($Seats->Price,$swzNum,$iseven) : '';
|
|
|
|
|
// $dwNum = isset($dwNum) ? ticket_exchange($Seats->Price,$dwNum,$iseven) : '';
|
|
|
|
|
// $ydwNum = isset($ydwNum) ? ticket_exchange($Seats->Price,$ydwNum,$iseven) : '';
|
|
|
|
|
// $erwNum = isset($erwNum) ? ticket_exchange($Seats->Price,$erwNum,$iseven) : '';
|
|
|
|
|
|
|
|
|
|
// $runMin = $TrainInfo->DurationMinutes % 60;
|
|
|
|
|
// $runHour = ($TrainInfo->DurationMinutes - $runMin) / 60;
|
|
|
|
|
|
|
|
|
|
// $ReturnData->data->result[$i] = '|预定|'.$TrainInfo->Train12306No.'|'.$TrainInfo->TrainNo.'|'.$TrainInfo->FromStationName.'|'.$TrainInfo->ToStationName.'|'.$TrainInfo->FromTelcode.'|'.$TrainInfo->ToTelcode.'|'.$TrainInfo->StartTime.'|'.$TrainInfo->ArriveTime.'|'.$runHour.':'.$runMin.'|'.$TrainInfo->CanWebBuy.'||'.date('Ymd',strtotime($date)).'||||||||'.$gjrwNum.'||'.$rwNum.'|'.$rzNum.'|'.$tdzNum.'|'.$wzNum.'||'.$ywNum.'|'.$yzNum.'|'.$edzNum.'|'.$ydzNum.'|'.$swzNum.'|'.$dwNum.'|||'.$ydwNum.'|'.$erwNum;
|
|
|
|
|
|
|
|
|
|
// $data = '{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{'.$PriceStr.'},"messages":[],"validateMessages":{}}';
|
|
|
|
|
// $ReturnData->data->price[$i] = $data;
|
|
|
|
|
// $i++;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// //print_r($ResponseData);die();
|
|
|
|
|
// $ReturnData->data->map = (object)$obj;
|
|
|
|
|
// if($return){
|
|
|
|
|
// return json_encode($ReturnData);
|
|
|
|
|
// }else{
|
|
|
|
|
// echo json_encode($ReturnData);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @description: 新的携程(顺途)火车票查询接口
|
|
|
|
@ -467,7 +274,7 @@ class innerTrainSearch extends CI_Controller{
|
|
|
|
|
// //获取数据
|
|
|
|
|
// echo ($url . "<hr/>");
|
|
|
|
|
// echo(json_encode($post_data) . "<hr/>");
|
|
|
|
|
$ResponseJson = GetPost_http($url,json_encode($post_data),'json_ctrip');
|
|
|
|
|
$ResponseJson = GetPost_http($url,json_encode($post_data),'json');
|
|
|
|
|
|
|
|
|
|
$api_end_time = microtime(true);
|
|
|
|
|
|
|
|
|
@ -678,7 +485,7 @@ class innerTrainSearch extends CI_Controller{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//查询经停站(基于携程api)
|
|
|
|
|
//查询经停站(基于携程api)
|
|
|
|
|
public function getstopstation(){
|
|
|
|
|
//接收参数
|
|
|
|
|
$DepartDate = $this->input->get_post('DepartDate');
|
|
|
|
@ -724,28 +531,41 @@ class innerTrainSearch extends CI_Controller{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取所有站点信息(基于携程api)
|
|
|
|
|
//获取所有站点信息(基于新携程接口 2022-7-18)
|
|
|
|
|
public function getallstation(){
|
|
|
|
|
ini_set('max_execution_time', 600);
|
|
|
|
|
//生成请求参数
|
|
|
|
|
$TimeStamp = time();
|
|
|
|
|
$Sign = md5($TimeStamp.DATAKEY);
|
|
|
|
|
|
|
|
|
|
$url = JSONRETURN.'/GetAllStations/?&User='.DATAUSER.'&TimeStamp='.$TimeStamp.'&Sign='.$Sign;
|
|
|
|
|
$TimeStamp = date("Y-m-d H:i:s");
|
|
|
|
|
$serviceName = "train.getAllStations";
|
|
|
|
|
$strSign = $TimeStamp.$serviceName.COMPANYID.CTRIPKEY; //加密前的令牌
|
|
|
|
|
$Sign = md5($strSign);
|
|
|
|
|
$url = CTRIPURL."/getAllStations";
|
|
|
|
|
|
|
|
|
|
$ResponseJson = GetPost_http($url,'','GET');
|
|
|
|
|
//构建接口参数,POST方式JSON格式
|
|
|
|
|
$post_data = new stdClass();
|
|
|
|
|
$post_data->authentication = new stdClass();
|
|
|
|
|
$post_data->authentication->timeStamp = $TimeStamp;
|
|
|
|
|
$post_data->authentication->serviceName = $serviceName;
|
|
|
|
|
$post_data->authentication->companyId = COMPANYID;
|
|
|
|
|
$post_data->authentication->messageIdentity = $Sign;
|
|
|
|
|
|
|
|
|
|
//获取数据
|
|
|
|
|
$ResponseJson = GetPost_http($url,json_encode($post_data),'json');
|
|
|
|
|
//echo $ResponseJson;
|
|
|
|
|
$ResponseData = json_decode($ResponseJson);
|
|
|
|
|
|
|
|
|
|
$data = array();
|
|
|
|
|
foreach ($ResponseData->Stations as $items){
|
|
|
|
|
$data['StationName'] = isset($items->StationName) ? checkNull($items->StationName) : '';
|
|
|
|
|
$data['PinYin'] = isset($items->PinYin) ? checkNull($items->PinYin) : '';
|
|
|
|
|
$data['Telecode'] = isset($items->Telecode) ? checkNull($items->Telecode) : '';
|
|
|
|
|
$data['Address'] = isset($items->Address) ? checkNull($items->Address) : '';
|
|
|
|
|
$data['Geography'] = isset($items->Geography) ? checkNull($items->Geography) : '';
|
|
|
|
|
foreach ($ResponseData->stationList as $items){
|
|
|
|
|
$data['StationName'] = isset($items->stationName) ? checkNull($items->stationName) : '';
|
|
|
|
|
$data['PinYin'] = isset($items->pinYin) ? checkNull($items->pinYin) : '';
|
|
|
|
|
$data['Telecode'] = isset($items->telecode) ? checkNull($items->telecode) : '';
|
|
|
|
|
$data['Address'] = isset($items->address) ? checkNull($items->address) : '';
|
|
|
|
|
$data['Geography'] = isset($items->shortPinYin) ? checkNull($items->shortPinYin) : '';
|
|
|
|
|
$this->load->model("ctrip_model");
|
|
|
|
|
$this->ctrip_model->AddOrUpdate($data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
echo("所有站点数据更新完毕!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testgetstation(){
|
|
|
|
@ -852,7 +672,7 @@ class innerTrainSearch extends CI_Controller{
|
|
|
|
|
exit('传参错误!');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$back_json = $this->juheApi($train_date,$fromStation,$toStation,true);
|
|
|
|
|
$back_json = $this->NewCtripApi($train_date,$fromStation,$toStation,true);
|
|
|
|
|
|
|
|
|
|
$train_info = new stdClass();
|
|
|
|
|
$train_info = json_decode($back_json);
|
|
|
|
@ -982,29 +802,226 @@ class innerTrainSearch extends CI_Controller{
|
|
|
|
|
print_r(json_encode($return_data));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
////携程数据接口(旧)
|
|
|
|
|
// public function ctripApi($date=null,$from=null,$to=null,$return=false){
|
|
|
|
|
// if(!$date || !$from || !$to){
|
|
|
|
|
// header("HTTP/1.1 404 Not Found");
|
|
|
|
|
// exit('{"httpstatus":404,"data":{"seven":false,"cache":false,"result":[],"map":{}}}');
|
|
|
|
|
// }else{
|
|
|
|
|
// $isCache = false;
|
|
|
|
|
// $iseven = false;
|
|
|
|
|
// $cachedata = false;
|
|
|
|
|
// $now_time = time();
|
|
|
|
|
// $differ = (strtotime($date) - $now_time) / 86400;
|
|
|
|
|
// //屏蔽掉超过预售期的搜索,提高速度,2021-7-5 zp修改预售期为15天,不再是30天
|
|
|
|
|
// if($differ > 14){
|
|
|
|
|
// $date = date('Y-m-d',strtotime('+7day'));
|
|
|
|
|
// $iseven = true;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// //转换三字码为中文
|
|
|
|
|
// $this->load->model("ctrip_model");
|
|
|
|
|
// $FromName = $this->ctrip_model->ReplaceCodeToName($from);
|
|
|
|
|
// $ToName = $this->ctrip_model->ReplaceCodeToName($to);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if(!$FromName || !$ToName){
|
|
|
|
|
// header("HTTP/1.1 404 Not Found");
|
|
|
|
|
// exit('{"httpstatus":404,"data":{"seven":false,"cache":false,"result":[],"map":{}}}');
|
|
|
|
|
// }else{
|
|
|
|
|
// $FromName = $FromName->station_name;
|
|
|
|
|
// $ToName = $ToName->station_name;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// //生成请求链接
|
|
|
|
|
// $TimeStamp = time();
|
|
|
|
|
// $Sign = md5($TimeStamp.DATAKEY);
|
|
|
|
|
|
|
|
|
|
// $url = JSONRETURN.'SearchS2S/?From='.urlencode($FromName).'&To='.urlencode($ToName).'&DepartDate='.$date.'&User='.DATAUSER.'&TimeStamp='.$TimeStamp.'&Sign='.$Sign;
|
|
|
|
|
|
|
|
|
|
// $api_start_time = microtime(true);
|
|
|
|
|
|
|
|
|
|
// //获取数据
|
|
|
|
|
// $ResponseJson = GetPost_http($url,'','GET');
|
|
|
|
|
|
|
|
|
|
// $api_end_time = microtime(true);
|
|
|
|
|
|
|
|
|
|
// $ResponseData = json_decode($ResponseJson);
|
|
|
|
|
|
|
|
|
|
// $api_responsive_time = $api_end_time - $api_start_time;
|
|
|
|
|
|
|
|
|
|
// if(empty($ResponseData->Trains)){
|
|
|
|
|
// log_message('error','ctrip_trian|status:trains is empty |相应时间:'.$api_responsive_time);
|
|
|
|
|
// }else{
|
|
|
|
|
// log_message('error','ctrip_trian|status:'.$ResponseData->ResponseStatus->Ack.'|相应时间:'.$api_responsive_time);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// //定义返回的json
|
|
|
|
|
// $ReturnData = new stdClass();
|
|
|
|
|
// $ReturnData->httpstatus = 200;
|
|
|
|
|
// $ReturnData->data = new stdClass();
|
|
|
|
|
// $ReturnData->data->seven = $iseven;
|
|
|
|
|
// $ReturnData->data->cache = $isCache;
|
|
|
|
|
// $ReturnData->data->supplier = 'ctrip';
|
|
|
|
|
// $ReturnData->data->result = array();
|
|
|
|
|
// $ReturnData->data->map = new stdClass();
|
|
|
|
|
// $obj = array();
|
|
|
|
|
// $i = 0;
|
|
|
|
|
// $PriceStr = '';
|
|
|
|
|
|
|
|
|
|
// //数据解析
|
|
|
|
|
// if(!empty($ResponseData->Trains)){
|
|
|
|
|
// foreach ($ResponseData->Trains as $TrainInfo){
|
|
|
|
|
// $obj[$TrainInfo->FromTelcode] = $TrainInfo->FromStationName;
|
|
|
|
|
// $obj[$TrainInfo->ToTelcode] = $TrainInfo->ToStationName;
|
|
|
|
|
// $SeaType = '';
|
|
|
|
|
// //余数初始化为空
|
|
|
|
|
// $gjrwNum = $rwNum = $rzNum = $tdzNum = $wzNum = $yzNum = $edzNum = $ydzNum = $swzNum = $ywNum = $dwNum = $ydwNum = $edzNum = null;
|
|
|
|
|
// foreach($TrainInfo->Seats as $Seats){
|
|
|
|
|
// //从香港出发的 D/G 火车加价3%
|
|
|
|
|
// if($from == 'XJA'){
|
|
|
|
|
// if(stripos($TrainInfo->TrainNo, "G") !== false || stripos($TrainInfo->TrainNo, "D") !== false){
|
|
|
|
|
// $Seats->Price = $Seats->Price * 1.03;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '高级软卧上'){
|
|
|
|
|
// $gjrwXiaPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"6":"'.$gjrwXiaPrice.'","A6":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $gjrwNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '软卧上'){
|
|
|
|
|
// $rwPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"4":"'.$rwPrice.'","A4":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $rwNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '一等双软上'){
|
|
|
|
|
// $SeaType .= '"YDW":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $ydwNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '软座'){
|
|
|
|
|
// $rzPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"2":"'.$rzPrice.'","A2":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $rzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '特等座'){
|
|
|
|
|
// $SeaType .= '"P":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $tdzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '无座'){
|
|
|
|
|
// $SeaType .= '"WZ":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $wzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '硬座'){
|
|
|
|
|
// $yzPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"1":"'.$yzPrice.'","A1":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $yzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '二等座'){
|
|
|
|
|
// $SeaType .= '"O":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $edzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '一等座'){
|
|
|
|
|
// $SeaType .= '"M":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $ydzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '商务座'){
|
|
|
|
|
// $swzPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"9":"'.$swzPrice.'","A9":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $swzNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '硬卧上'){
|
|
|
|
|
// $ywPrice = $Seats->Price * 10;
|
|
|
|
|
// $SeaType .= '"3":"'.$ywPrice.'","A3":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $ywNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '二等双软上'){
|
|
|
|
|
// $SeaType .= '"EDW":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $erwNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if($Seats->SeatName == '动卧上'){
|
|
|
|
|
// $SeaType .= '"F":"¥'.$Seats->Price.'",';
|
|
|
|
|
// $dwNum = $Seats->TicketLeft;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// $PriceStr = $SeaType.'"train_no":'.'"'.$TrainInfo->TrainNo.'"';
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// //对返回的数据进行容错处理
|
|
|
|
|
// $gjrwNum = isset($gjrwNum) ? ticket_exchange($Seats->Price,$gjrwNum,$iseven) : '';
|
|
|
|
|
// $rwNum = isset($rwNum) ? ticket_exchange($Seats->Price,$rwNum,$iseven) : '';
|
|
|
|
|
// $rzNum = isset($rzNum) ? ticket_exchange($Seats->Price,$rzNum,$iseven) : '';
|
|
|
|
|
// $tdzNum = isset($tdzNum) ? ticket_exchange($Seats->Price,$tdzNum,$iseven) : '';
|
|
|
|
|
// $wzNum = isset($wzNum) ? ticket_exchange($Seats->Price,$wzNum,$iseven) : '';
|
|
|
|
|
// $ywNum = isset($ywNum) ? ticket_exchange($Seats->Price,$ywNum,$iseven) : '';
|
|
|
|
|
// $yzNum = isset($yzNum) ? ticket_exchange($Seats->Price,$yzNum,$iseven) : '';
|
|
|
|
|
// $edzNum = isset($edzNum) ? ticket_exchange($Seats->Price,$edzNum,$iseven) : '';
|
|
|
|
|
// $ydzNum = isset($ydzNum) ? ticket_exchange($Seats->Price,$ydzNum,$iseven) : '';
|
|
|
|
|
// $swzNum = isset($swzNum) ? ticket_exchange($Seats->Price,$swzNum,$iseven) : '';
|
|
|
|
|
// $dwNum = isset($dwNum) ? ticket_exchange($Seats->Price,$dwNum,$iseven) : '';
|
|
|
|
|
// $ydwNum = isset($ydwNum) ? ticket_exchange($Seats->Price,$ydwNum,$iseven) : '';
|
|
|
|
|
// $erwNum = isset($erwNum) ? ticket_exchange($Seats->Price,$erwNum,$iseven) : '';
|
|
|
|
|
|
|
|
|
|
// $runMin = $TrainInfo->DurationMinutes % 60;
|
|
|
|
|
// $runHour = ($TrainInfo->DurationMinutes - $runMin) / 60;
|
|
|
|
|
|
|
|
|
|
// $ReturnData->data->result[$i] = '|预定|'.$TrainInfo->Train12306No.'|'.$TrainInfo->TrainNo.'|'.$TrainInfo->FromStationName.'|'.$TrainInfo->ToStationName.'|'.$TrainInfo->FromTelcode.'|'.$TrainInfo->ToTelcode.'|'.$TrainInfo->StartTime.'|'.$TrainInfo->ArriveTime.'|'.$runHour.':'.$runMin.'|'.$TrainInfo->CanWebBuy.'||'.date('Ymd',strtotime($date)).'||||||||'.$gjrwNum.'||'.$rwNum.'|'.$rzNum.'|'.$tdzNum.'|'.$wzNum.'||'.$ywNum.'|'.$yzNum.'|'.$edzNum.'|'.$ydzNum.'|'.$swzNum.'|'.$dwNum.'|||'.$ydwNum.'|'.$erwNum;
|
|
|
|
|
|
|
|
|
|
// $data = '{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{'.$PriceStr.'},"messages":[],"validateMessages":{}}';
|
|
|
|
|
// $ReturnData->data->price[$i] = $data;
|
|
|
|
|
// $i++;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// //print_r($ResponseData);die();
|
|
|
|
|
// $ReturnData->data->map = (object)$obj;
|
|
|
|
|
// if($return){
|
|
|
|
|
// return json_encode($ReturnData);
|
|
|
|
|
// }else{
|
|
|
|
|
// echo json_encode($ReturnData);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// //获取所有站点信息(基于携程api)旧接口
|
|
|
|
|
// public function getallstation(){
|
|
|
|
|
// //生成请求参数
|
|
|
|
|
// $TimeStamp = time();
|
|
|
|
|
// $Sign = md5($TimeStamp.DATAKEY);
|
|
|
|
|
|
|
|
|
|
// $url = JSONRETURN.'/GetAllStations/?&User='.DATAUSER.'&TimeStamp='.$TimeStamp.'&Sign='.$Sign;
|
|
|
|
|
|
|
|
|
|
// $ResponseJson = GetPost_http($url,'','GET');
|
|
|
|
|
|
|
|
|
|
// $ResponseData = json_decode($ResponseJson);
|
|
|
|
|
|
|
|
|
|
// $data = array();
|
|
|
|
|
// foreach ($ResponseData->Stations as $items){
|
|
|
|
|
// $data['StationName'] = isset($items->StationName) ? checkNull($items->StationName) : '';
|
|
|
|
|
// $data['PinYin'] = isset($items->PinYin) ? checkNull($items->PinYin) : '';
|
|
|
|
|
// $data['Telecode'] = isset($items->Telecode) ? checkNull($items->Telecode) : '';
|
|
|
|
|
// $data['Address'] = isset($items->Address) ? checkNull($items->Address) : '';
|
|
|
|
|
// $data['Geography'] = isset($items->Geography) ? checkNull($items->Geography) : '';
|
|
|
|
|
// $this->load->model("ctrip_model");
|
|
|
|
|
// $this->ctrip_model->AddOrUpdate($data);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//字符串转Unicode编码
|
|
|
|
|
function unicode_encode($strLong) {
|
|
|
|
|
$strArr = preg_split('/(?<!^)(?!$)/u', $strLong);//拆分字符串为数组(含中文字符)
|
|
|
|
|
$resUnicode = '';
|
|
|
|
|
foreach ($strArr as $str)
|
|
|
|
|
{
|
|
|
|
|
$bin_str = '';
|
|
|
|
|
$arr = is_array($str) ? $str : str_split($str);//获取字符内部数组表示,此时$arr应类似array(228, 189, 160)
|
|
|
|
|
foreach ($arr as $value)
|
|
|
|
|
{
|
|
|
|
|
$bin_str .= decbin(ord($value));//转成数字再转成二进制字符串,$bin_str应类似111001001011110110100000,如果是汉字"你"
|
|
|
|
|
}
|
|
|
|
|
$bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/', '$1$2$3', $bin_str);//正则截取, $bin_str应类似0100111101100000,如果是汉字"你"
|
|
|
|
|
$unicode = dechex(bindec($bin_str));//返回unicode十六进制
|
|
|
|
|
$_sup = '';
|
|
|
|
|
for ($i = 0; $i < 4 - strlen($unicode); $i++)
|
|
|
|
|
{
|
|
|
|
|
$_sup .= '0';//补位高字节 0
|
|
|
|
|
}
|
|
|
|
|
$str = '\\u' . $_sup . $unicode; //加上 \u 返回
|
|
|
|
|
$resUnicode .= $str;
|
|
|
|
|
}
|
|
|
|
|
return $resUnicode;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|