diff --git a/application/third_party/trainsystem/config/config.php b/application/third_party/trainsystem/config/config.php
index 816ba8a3..8fe0fae8 100644
--- a/application/third_party/trainsystem/config/config.php
+++ b/application/third_party/trainsystem/config/config.php
@@ -19,6 +19,13 @@ define("DATAKEY","0dbf1652763c2289533e27437a971854");
//携程接口地址
define("JSONRETURN","http://m.ctrip.com/restapi/soa2/12976/json/");
+//新携程接口(顺途)用的企业ID
+define("COMPANYID","4003171843");
+//新携程接口(顺途)用的Key
+define("CTRIPKEY","hajkrtbc");
+//新携程接口(顺途)的地址
+define("CTRIPURL","https://apiproxy.ctrip.com/apiproxy/soa2/19946");
+
//聚合火车订票API key
define("JUHE_TRAIN_API_KEY","79f03107b921ef31310bd40a1415c1cb");
diff --git a/application/third_party/trainsystem/controllers/innerTrainSearch.php b/application/third_party/trainsystem/controllers/innerTrainSearch.php
index be6726ad..a7c9bad9 100644
--- a/application/third_party/trainsystem/controllers/innerTrainSearch.php
+++ b/application/third_party/trainsystem/controllers/innerTrainSearch.php
@@ -39,10 +39,10 @@ class innerTrainSearch extends CI_Controller{
$this->juheApi($date,$from,$to);
break;
case 'ctrip':
- $this->ctripApi($date,$from,$to);
+ $this->NewCtripApi($date,$from,$to);
break;
default :
- $this->juheApi($date,$from,$to);
+ $this->NewCtripApi($date,$from,$to);
break;
}
}
@@ -209,8 +209,211 @@ class innerTrainSearch extends CI_Controller{
return json_encode($return_data);
}
- //携程数据接口
- public function ctripApi($date=null,$from=null,$to=null,$return=false){
+ // //携程数据接口
+ // 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: 新的携程(顺途)火车票查询接口
+ * @param {*} $date 日期
+ * @param {*} $from 出发站点三字码
+ * @param {*} $to 到达站点三字码
+ * @param {*} $return
+ * @return {*}
+ * @Date Changed:
+ */
+ public function NewCtripApi($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":{}}}');
@@ -241,23 +444,40 @@ class innerTrainSearch extends CI_Controller{
}
//生成请求链接
- $TimeStamp = time();
- $Sign = md5($TimeStamp.DATAKEY);
-
- $url = JSONRETURN.'SearchS2S/?From='.urlencode($FromName).'&To='.urlencode($ToName).'&DepartDate='.$date.'&User='.DATAUSER.'&TimeStamp='.$TimeStamp.'&Sign='.$Sign;
+ $TimeStamp = date("Y-m-d H:i:s");
+ $serviceName = "train.searchTrainsBetweenStations"; //每个接口都有自己名称
+ $strSign = $TimeStamp.$serviceName.COMPANYID.CTRIPKEY; //加密前的令牌
+ $Sign = md5($strSign);
+ $url = CTRIPURL."/searchTrainsBetweenStations";
+
+ //构建接口参数,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;
+ $post_data->searchTrainsParam = new stdClass();
+ $post_data->searchTrainsParam->departDate = $date;
+ $post_data->searchTrainsParam->fromStationName = $FromName;
+ $post_data->searchTrainsParam->toStationName = $ToName;
$api_start_time = microtime(true);
- //获取数据
- $ResponseJson = GetPost_http($url,'','GET');
+ // //获取数据
+ // echo ($url . "
");
+ // echo(json_encode($post_data) . "
");
+ $ResponseJson = GetPost_http($url,json_encode($post_data),'json_ctrip');
$api_end_time = microtime(true);
$ResponseData = json_decode($ResponseJson);
+ // echo($ResponseJson);
+
$api_responsive_time = $api_end_time - $api_start_time;
- if(empty($ResponseData->Trains)){
+ if(empty($ResponseData->trainList)){
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);
@@ -269,7 +489,7 @@ class innerTrainSearch extends CI_Controller{
$ReturnData->data = new stdClass();
$ReturnData->data->seven = $iseven;
$ReturnData->data->cache = $isCache;
- $ReturnData->data->supplier = 'ctrip';
+ $ReturnData->data->supplier = 'newctrip';
$ReturnData->data->result = array();
$ReturnData->data->map = new stdClass();
$obj = array();
@@ -277,115 +497,115 @@ class innerTrainSearch extends CI_Controller{
$PriceStr = '';
//数据解析
- if(!empty($ResponseData->Trains)){
- foreach ($ResponseData->Trains as $TrainInfo){
- $obj[$TrainInfo->FromTelcode] = $TrainInfo->FromStationName;
- $obj[$TrainInfo->ToTelcode] = $TrainInfo->ToStationName;
+ if(!empty($ResponseData->trainList)){
+ foreach ($ResponseData->trainList 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){
+ foreach($TrainInfo->seatList 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(stripos($TrainInfo->trainNo, "G") !== false || stripos($TrainInfo->trainNo, "D") !== false){
+ $Seats->maxPrice = $Seats->maxPrice * 1.03;
}
}
- if($Seats->SeatName == '高级软卧上'){
- $gjrwXiaPrice = $Seats->Price * 10;
- $SeaType .= '"6":"'.$gjrwXiaPrice.'","A6":"¥'.$Seats->Price.'",';
- $gjrwNum = $Seats->TicketLeft;
+ if($Seats->seatName == '高级软卧上'){
+ $gjrwXiaPrice = $Seats->maxPrice * 10;
+ $SeaType .= '"6":"'.$gjrwXiaPrice.'","A6":"¥'.$Seats->maxPrice.'",';
+ $gjrwNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '软卧上'){
- $rwPrice = $Seats->Price * 10;
- $SeaType .= '"4":"'.$rwPrice.'","A4":"¥'.$Seats->Price.'",';
- $rwNum = $Seats->TicketLeft;
+ if($Seats->seatName == '软卧上'){
+ $rwPrice = $Seats->maxPrice * 10;
+ $SeaType .= '"4":"'.$rwPrice.'","A4":"¥'.$Seats->maxPrice.'",';
+ $rwNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '一等双软上'){
- $SeaType .= '"YDW":"¥'.$Seats->Price.'",';
- $ydwNum = $Seats->TicketLeft;
+ if($Seats->seatName == '一等双软上'){
+ $SeaType .= '"YDW":"¥'.$Seats->maxPrice.'",';
+ $ydwNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '软座'){
- $rzPrice = $Seats->Price * 10;
- $SeaType .= '"2":"'.$rzPrice.'","A2":"¥'.$Seats->Price.'",';
- $rzNum = $Seats->TicketLeft;
+ if($Seats->seatName == '软座'){
+ $rzPrice = $Seats->maxPrice * 10;
+ $SeaType .= '"2":"'.$rzPrice.'","A2":"¥'.$Seats->maxPrice.'",';
+ $rzNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '特等座'){
- $SeaType .= '"P":"¥'.$Seats->Price.'",';
- $tdzNum = $Seats->TicketLeft;
+ if($Seats->seatName == '特等座'){
+ $SeaType .= '"P":"¥'.$Seats->maxPrice.'",';
+ $tdzNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '无座'){
- $SeaType .= '"WZ":"¥'.$Seats->Price.'",';
- $wzNum = $Seats->TicketLeft;
+ if($Seats->seatName == '无座'){
+ $SeaType .= '"WZ":"¥'.$Seats->maxPrice.'",';
+ $wzNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '硬座'){
- $yzPrice = $Seats->Price * 10;
- $SeaType .= '"1":"'.$yzPrice.'","A1":"¥'.$Seats->Price.'",';
- $yzNum = $Seats->TicketLeft;
+ if($Seats->seatName == '硬座'){
+ $yzPrice = $Seats->maxPrice * 10;
+ $SeaType .= '"1":"'.$yzPrice.'","A1":"¥'.$Seats->maxPrice.'",';
+ $yzNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '二等座'){
- $SeaType .= '"O":"¥'.$Seats->Price.'",';
- $edzNum = $Seats->TicketLeft;
+ if($Seats->seatName == '二等座'){
+ $SeaType .= '"O":"¥'.$Seats->maxPrice.'",';
+ $edzNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '一等座'){
- $SeaType .= '"M":"¥'.$Seats->Price.'",';
- $ydzNum = $Seats->TicketLeft;
+ if($Seats->seatName == '一等座'){
+ $SeaType .= '"M":"¥'.$Seats->maxPrice.'",';
+ $ydzNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '商务座'){
- $swzPrice = $Seats->Price * 10;
- $SeaType .= '"9":"'.$swzPrice.'","A9":"¥'.$Seats->Price.'",';
- $swzNum = $Seats->TicketLeft;
+ if($Seats->seatName == '商务座'){
+ $swzPrice = $Seats->maxPrice * 10;
+ $SeaType .= '"9":"'.$swzPrice.'","A9":"¥'.$Seats->maxPrice.'",';
+ $swzNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '硬卧上'){
- $ywPrice = $Seats->Price * 10;
- $SeaType .= '"3":"'.$ywPrice.'","A3":"¥'.$Seats->Price.'",';
- $ywNum = $Seats->TicketLeft;
+ if($Seats->seatName == '硬卧上'){
+ $ywPrice = $Seats->maxPrice * 10;
+ $SeaType .= '"3":"'.$ywPrice.'","A3":"¥'.$Seats->maxPrice.'",';
+ $ywNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '二等双软上'){
- $SeaType .= '"EDW":"¥'.$Seats->Price.'",';
- $erwNum = $Seats->TicketLeft;
+ if($Seats->seatName == '二等双软上'){
+ $SeaType .= '"EDW":"¥'.$Seats->maxPrice.'",';
+ $erwNum = $Seats->ticketLeft;
}
- if($Seats->SeatName == '动卧上'){
- $SeaType .= '"F":"¥'.$Seats->Price.'",';
- $dwNum = $Seats->TicketLeft;
+ if($Seats->seatName == '动卧上'){
+ $SeaType .= '"F":"¥'.$Seats->maxPrice.'",';
+ $dwNum = $Seats->ticketLeft;
}
- $PriceStr = $SeaType.'"train_no":'.'"'.$TrainInfo->TrainNo.'"';
+ $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;
+ $gjrwNum = isset($gjrwNum) ? ticket_exchange($Seats->maxPrice,$gjrwNum,$iseven) : '';
+ $rwNum = isset($rwNum) ? ticket_exchange($Seats->maxPrice,$rwNum,$iseven) : '';
+ $rzNum = isset($rzNum) ? ticket_exchange($Seats->maxPrice,$rzNum,$iseven) : '';
+ $tdzNum = isset($tdzNum) ? ticket_exchange($Seats->maxPrice,$tdzNum,$iseven) : '';
+ $wzNum = isset($wzNum) ? ticket_exchange($Seats->maxPrice,$wzNum,$iseven) : '';
+ $ywNum = isset($ywNum) ? ticket_exchange($Seats->maxPrice,$ywNum,$iseven) : '';
+ $yzNum = isset($yzNum) ? ticket_exchange($Seats->maxPrice,$yzNum,$iseven) : '';
+ $edzNum = isset($edzNum) ? ticket_exchange($Seats->maxPrice,$edzNum,$iseven) : '';
+ $ydzNum = isset($ydzNum) ? ticket_exchange($Seats->maxPrice,$ydzNum,$iseven) : '';
+ $swzNum = isset($swzNum) ? ticket_exchange($Seats->maxPrice,$swzNum,$iseven) : '';
+ $dwNum = isset($dwNum) ? ticket_exchange($Seats->maxPrice,$dwNum,$iseven) : '';
+ $ydwNum = isset($ydwNum) ? ticket_exchange($Seats->maxPrice,$ydwNum,$iseven) : '';
+ $erwNum = isset($erwNum) ? ticket_exchange($Seats->maxPrice,$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;
@@ -399,6 +619,62 @@ class innerTrainSearch extends CI_Controller{
}else{
echo json_encode($ReturnData);
}
+
+ }
+ }
+
+ //App项目组的接口
+ public function appGroupApi($train_date=null,$fromStation=null,$toStation=null,$return=false){
+ set_time_limit(0);
+
+ //判断数据是否合法
+ if(!$train_date || !$fromStation || !$toStation){
+ exit('传参不能为空!');
+ }else{
+ if(strlen($fromStation) != 3){
+ exit('fromStation:参数错误!');
+ }
+ if(strlen($toStation) != 3){
+ exit('toStation:参数错误!');
+ }
+
+ $api_start_time = microtime(true);
+ $train_date = date('Y-m-d', strtotime($train_date)); // 调整格式:YYYY-mm-dd
+ //调用查询模块
+ $this->train_date = $train_date;
+ $now_time = time();
+ $this->differ_time = (strtotime($train_date) - $now_time) / 86400;
+ $this->seveth = false;
+ //屏蔽掉超过预售期的搜索 ,修改预售期为15天,不再是30天
+ if($this->differ_time > 14){
+ $train_date = date('Y-m-d',strtotime('+7day'));
+ $this->seveth = true;
+ }
+ $appGroupUrl = "http://106.14.5.249:8016/otn/leftTicket/query?leftTicketDTO.train_date=2022-07-15&leftTicketDTO.from_station=GLZ&leftTicketDTO.to_station=NNZ&purpose_codes=ADULT";
+ //$appGroupUrl = "http://106.14.5.249:8185/otn/leftTicket/query?leftTicketDTO.train_date=2022-07-15&leftTicketDTO.from_station=GLZ&leftTicketDTO.to_station=NNZ&purpose_codes=ADULT";
+ $this->url = $appGroupUrl;
+ $train_info = GetPost_http($this->url);
+
+ //$search_return = $train_info;
+ $api_end_time = microtime(true);
+
+ //调用拼接处理模块
+ $trainjson = json_encode($train_info);
+ $end_time = microtime(true);
+
+ //聚合接口相应时间
+ $api_responsive_time = $api_end_time - $api_start_time;
+
+ //我们的接口相应时间
+ $responsive_time = $end_time - $this->start_time;
+ log_message('error','TRAINSPEED|请求url:'.$this->url.'|APP项目组相应时间:'.$api_responsive_time.'s|接口运行时间:'.$responsive_time.'s|+7天:'.$this->seveth);
+
+ if($return){
+ return ($trainjson);
+ }else{
+ echo ($trainjson);
+ }
+
}
}
@@ -472,6 +748,63 @@ class innerTrainSearch extends CI_Controller{
}
}
+ public function testgetstation(){
+ $TimeStamp = date("Y-m-d H:i:s");
+ //$TimeStamp = time();
+ $serviceName = "train.getAllStations";
+ $companyId = "4003171843";
+ $key = "hajkrtbc";
+ $strSign = $TimeStamp.$serviceName.$companyId.$key;
+ $sign = md5($strSign);
+ $u_sign = md5($this->unicode_encode($strSign));
+ $E_sign = md5(urlencode($strSign));
+ echo($strSign . "
");
+ echo($sign. "
");
+ echo($u_sign. "
");
+ echo($E_sign. "
");
+ $JSONRETURN = "http://apiproxy-uat.ctripqa.com/apiproxy/soa2/19946";
+ //$JSONRETURN = "https://apiproxy.ctrip.com/apiproxy/soa2/19946";
+ $data["TimeStamp"] = $TimeStamp;
+ $data["serviceName"] = $serviceName;
+ $data["companyId"] = $companyId;
+ $data["messageIdentity"] = $sign;
+ //$post_data = 'timeStamp='.$TimeStamp.'&serviceName='.$serviceName.'&companyId='.$companyId.'&messageIdentity='.$sign; //array("TimeStamp"=>$TimeStamp,"serviceName"=>$serviceName,"companyId"=>$companyId,"messageIdentity"=>$sign);
+ // $url = $JSONRETURN.'/getAllStations/?&timeStamp='.$TimeStamp.'&serviceName='.$serviceName.'&companyId='.$companyId.'&messageIdentity='.$sign;
+ //echo ($post_data);
+
+ $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;
+
+ $url = $JSONRETURN."/getAllStations";
+ echo json_encode($post_data)."
" ;
+
+
+ $serviceName_Trains = "train.searchTrainsBetweenStations";
+ $sign_train = md5($TimeStamp.$serviceName_Trains.$companyId.$key);
+ $post_data_train = new stdClass();
+ $post_data_train->authentication = new stdClass();
+ $post_data_train->authentication->timeStamp = $TimeStamp;
+ $post_data_train->authentication->serviceName = $serviceName_Trains;
+ $post_data_train->authentication->companyId = $companyId;
+ $post_data_train->authentication->messageIdentity = $sign_train;
+ $post_data_train->searchTrainsParam = new stdClass();
+ $post_data_train->searchTrainsParam->departDate = "2022-07-23";
+ $post_data_train->searchTrainsParam->fromStationName = "北京";
+ $post_data_train->searchTrainsParam->toStationName = "上海";
+
+ echo json_encode($post_data_train);
+
+
+ //$ResponseJson = GetPost_http($url,json_encode($post_data),'json');
+ //echo $ResponseJson;
+ //echo json_decode($ResponseJson);
+
+ }
+
//查询中转方案(基于携程api)
public function gettraintrainsfer(){
$FromCode = $this->input->get_post('FromCode');
@@ -648,4 +981,30 @@ class innerTrainSearch extends CI_Controller{
}
print_r(json_encode($return_data));
}
+
+
+ //字符串转Unicode编码
+ function unicode_encode($strLong) {
+ $strArr = preg_split('/(?