添加机票搜索接口

hotfix/paypal-note
赵鹏 4 years ago
parent 3adf6d249a
commit 4b4309bcfe

@ -2,87 +2,95 @@
if (!defined('BASEPATH')) if (!defined('BASEPATH'))
exit('No direct script access allowed'); exit('No direct script access allowed');
class api extends CI_Controller{ class api extends CI_Controller
public function __construct(){ {
public function __construct()
{
parent::__construct(); parent::__construct();
$this->load->helper('tuniu'); $this->load->helper('tuniu');
$this->load->model('flight_model');
} }
public function index(){ public function index()
{
exit('前方高能!!'); exit('前方高能!!');
} }
//帐号绑定 //帐号绑定
public function bindAccount(){ public function bindAccount()
{
$timestamp = time(); $timestamp = time();
$data = '{"account":"phoebe@hainatravel.com","defaultPay":0}'; $data = '{"account":"phoebe@hainatravel.com","defaultPay":0}';
$sign = md5(TUNIU_FLIGHT_KEY.$data.$timestamp); $sign = md5(TUNIU_FLIGHT_KEY . $data . $timestamp);
$accountJson = '{ $accountJson = '{
"purchaseId": '.TUNIU_FLIGHT_ID.', "purchaseId": ' . TUNIU_FLIGHT_ID . ',
"sign": "'.$sign .'", "sign": "' . $sign . '",
"function": "paymentSign", "function": "paymentSign",
"timestamp": '.$timestamp.', "timestamp": ' . $timestamp . ',
"data":'.$data.' "data":' . $data . '
}'; }';
$returnJson = post_tuniu(TUNIU_FLIGHT_API,$accountJson,'POST'); $returnJson = post_tuniu(TUNIU_FLIGHT_API, $accountJson, 'POST');
//print_r($returnData); //print_r($returnData);
echo $returnJson; echo $returnJson;
} }
//查询钱包接口 //查询钱包接口
public function checkWallet(){ public function checkWallet()
{
$timestamp = time(); $timestamp = time();
$data = '{}'; $data = '{}';
$sign = md5(TUNIU_FLIGHT_KEY.$data.$timestamp); $sign = md5(TUNIU_FLIGHT_KEY . $data . $timestamp);
$walletJson = '{ $walletJson = '{
"purchaseId": '.TUNIU_FLIGHT_ID.', "purchaseId": ' . TUNIU_FLIGHT_ID . ',
"sign": "'.$sign .'", "sign": "' . $sign . '",
"function": "tuNiuWalletInfo", "function": "tuNiuWalletInfo",
"timestamp": '.$timestamp.', "timestamp": ' . $timestamp . ',
"data":'.$data.' "data":' . $data . '
}'; }';
$returnJson = post_tuniu(TUNIU_FLIGHT_API,$walletJson,'POST'); $returnJson = post_tuniu(TUNIU_FLIGHT_API, $walletJson, 'POST');
//print_r($returnData); //print_r($returnData);
echo $returnJson; echo $returnJson;
} }
//保险查询 //保险查询
public function getinsurance(){ public function getinsurance()
{
$timestamp = time(); $timestamp = time();
$data = '{}'; $data = '{}';
$sign = md5(TUNIU_FLIGHT_KEY.$data.$timestamp); $sign = md5(TUNIU_FLIGHT_KEY . $data . $timestamp);
$insuranceJson = '{ $insuranceJson = '{
"purchaseId": '.TUNIU_FLIGHT_ID.', "purchaseId": ' . TUNIU_FLIGHT_ID . ',
"sign": "'.$sign .'", "sign": "' . $sign . '",
"function": "insurance", "function": "insurance",
"timestamp": '.$timestamp.', "timestamp": ' . $timestamp . ',
"data":'.$data.' "data":' . $data . '
}'; }';
$returnJson = post_tuniu(TUNIU_FLIGHT_API,$insuranceJson,'POST'); $returnJson = post_tuniu(TUNIU_FLIGHT_API, $insuranceJson, 'POST');
//print_r($returnData); //print_r($returnData);
echo $returnJson; echo $returnJson;
} }
//查询接口 //查询接口
public function searchForHt(){ public function searchForHt()
{
$departDate = $this->input->get_post('departDate'); $departDate = $this->input->get_post('departDate');
$departCode = $this->input->get_post('departCode'); $departCode = $this->input->get_post('departCode');
$arriveCode = $this->input->get_post('arriveCode'); $arriveCode = $this->input->get_post('arriveCode');
if(empty($departDate) || empty($departCode) || empty($arriveCode)){ if (empty($departDate) || empty($departCode) || empty($arriveCode)) {
exit('请传入正确的参数,如有疑问请联系CYC'); exit('请传入正确的参数,如有疑问请联系CYC');
} }
$url = 'https://www.trainspread.com/guide.php/flight/search/?departDate='.$departDate.'&departCode='.$departCode.'&arriveCode='.$arriveCode; $url = 'https://www.trainspread.com/guide.php/flight/search/?departDate=' . $departDate . '&departCode=' . $departCode . '&arriveCode=' . $arriveCode;
$json = post_tuniu($url); $json = post_tuniu($url);
$data['data'] = json_decode($json); $data['data'] = json_decode($json);
$this->load->view('searchForHt',$data); $this->load->view('searchForHt', $data);
} }
//下单接口 //下单接口
public function addorders(){ public function addorders()
{
//接收参数 //接收参数
$departime = $this->input->get_post('departime'); $departime = $this->input->get_post('departime');
$fromcode = $this->input->get_post('fromcode'); $fromcode = $this->input->get_post('fromcode');
@ -96,8 +104,8 @@ class api extends CI_Controller{
$flightNumber = 'KN5955'; $flightNumber = 'KN5955';
//查询到sessionid //查询到sessionid
$searchJson = get_serach_json($deparTime,$fromCode,$toCode,$flightNumber); $searchJson = get_serach_json($deparTime, $fromCode, $toCode, $flightNumber);
$returnJson = post_tuniu(TUNIU_FLIGHT_API,$searchJson,'POST'); $returnJson = post_tuniu(TUNIU_FLIGHT_API, $searchJson, 'POST');
$returnData = json_decode($returnJson); $returnData = json_decode($returnJson);
$sessionId = $returnData->data->queryResultList['0']->resourceList['0']->sessionId; $sessionId = $returnData->data->queryResultList['0']->resourceList['0']->sessionId;
//$sessionId = 'eyJuYW1lIjoiZGlzdE5ldyIsImZrIjoiTkFZI1NIQSNLTjU5NTUjMjAxOS0wOC0xNSIsInNpIjo4LCJjYSI6IlkiLCJjbyI6IkgiLCJhcCI6IjUxOCIsImNwIjoiNzcyIn0'; //$sessionId = 'eyJuYW1lIjoiZGlzdE5ldyIsImZrIjoiTkFZI1NIQSNLTjU5NTUjMjAxOS0wOC0xNSIsInNpIjo4LCJjYSI6IlkiLCJjbyI6IkgiLCJhcCI6IjUxOCIsImNwIjoiNzcyIn0';
@ -107,123 +115,255 @@ class api extends CI_Controller{
//拼接下单报文 //拼接下单报文
$data = '{"contactTel":"18877381547","flight":{"adtPrice":1111,"arriveCityCode":"'.$toCode.'","cabinClass":"Y","cabinCode":"H","departureCityCode":"'.$fromCode.'","departureDate":"'.$deparTime.'","flightNum":"'.$flightNumber.'"},"remark":"haina123456","sessionId":"'.$sessionId.'","touristList":[{"birthday":"1992-08-13","firstName":"chen","lastName":"yuchao","name":"陈宇超","personType":"ADT","psptId":"450302199208131039","psptType":1,"tel":"18877381547"}]}'; $data = '{"contactTel":"18877381547","flight":{"adtPrice":1111,"arriveCityCode":"' . $toCode . '","cabinClass":"Y","cabinCode":"H","departureCityCode":"' . $fromCode . '","departureDate":"' . $deparTime . '","flightNum":"' . $flightNumber . '"},"remark":"haina123456","sessionId":"' . $sessionId . '","touristList":[{"birthday":"1992-08-13","firstName":"chen","lastName":"yuchao","name":"陈宇超","personType":"ADT","psptId":"450302199208131039","psptType":1,"tel":"18877381547"}]}';
$timestamp = time(); $timestamp = time();
$sign = md5(TUNIU_FLIGHT_KEY.$data.$timestamp); $sign = md5(TUNIU_FLIGHT_KEY . $data . $timestamp);
$bookJson = '{ $bookJson = '{
"purchaseId": '.TUNIU_FLIGHT_ID.', "purchaseId": ' . TUNIU_FLIGHT_ID . ',
"sign": "'.$sign .'", "sign": "' . $sign . '",
"timestamp": '.$timestamp.', "timestamp": ' . $timestamp . ',
"function": "createOrder", "function": "createOrder",
"data":'.$data.' "data":' . $data . '
}'; }';
//echo $bookJson;die(); //echo $bookJson;die();
$returnJson = post_tuniu(TUNIU_FLIGHT_API,$bookJson,'POST'); $returnJson = post_tuniu(TUNIU_FLIGHT_API, $bookJson, 'POST');
//print_r($returnData); //print_r($returnData);
echo $returnJson; echo $returnJson;
//生成报文 //生成报文
} }
//请求支付接口 //请求支付接口
public function payorders(){ public function payorders()
{
$order = $this->input->get_post('order'); $order = $this->input->get_post('order');
$order = '1226443588'; $order = '1226443588';
if(empty($order)){ if (empty($order)) {
exit('订单号为空'); exit('订单号为空');
}else{ } else {
//拼接支付报文 //拼接支付报文
$timestamp = time(); $timestamp = time();
$data = '{"account":"phoebe@hainatravel.com","orderId":"'.$order.'","payType":1}'; $data = '{"account":"phoebe@hainatravel.com","orderId":"' . $order . '","payType":1}';
$sign = md5(TUNIU_FLIGHT_KEY.$data.$timestamp); $sign = md5(TUNIU_FLIGHT_KEY . $data . $timestamp);
$payjson = '{ $payjson = '{
"purchaseId": '.TUNIU_FLIGHT_ID.', "purchaseId": ' . TUNIU_FLIGHT_ID . ',
"sign": "'.$sign .'", "sign": "' . $sign . '",
"timestamp": '.$timestamp.', "timestamp": ' . $timestamp . ',
"function": "paymentOrder", "function": "paymentOrder",
"data":'.$data.' "data":' . $data . '
}'; }';
$returnJson = post_tuniu(TUNIU_FLIGHT_API,$payjson,'POST'); $returnJson = post_tuniu(TUNIU_FLIGHT_API, $payjson, 'POST');
echo $returnJson; echo $returnJson;
} }
} }
//单个订单详情查询接口 //单个订单详情查询接口
public function getorderinfos(){ public function getorderinfos()
{
$order = $this->input->get_post('order'); $order = $this->input->get_post('order');
if(empty($order)){ if (empty($order)) {
exit('订单号为空'); exit('订单号为空');
}else{ } else {
//拼接支付报文 //拼接支付报文
$timestamp = time(); $timestamp = time();
$data = '{"orderId":"'.$order.'"}'; $data = '{"orderId":"' . $order . '"}';
$sign = md5(TUNIU_FLIGHT_KEY.$data.$timestamp); $sign = md5(TUNIU_FLIGHT_KEY . $data . $timestamp);
$orderinfojson = '{ $orderinfojson = '{
"purchaseId": '.TUNIU_FLIGHT_ID.', "purchaseId": ' . TUNIU_FLIGHT_ID . ',
"sign": "'.$sign .'", "sign": "' . $sign . '",
"timestamp": '.$timestamp.', "timestamp": ' . $timestamp . ',
"function": "orderDetail", "function": "orderDetail",
"data":'.$data.' "data":' . $data . '
}'; }';
$returnJson = post_tuniu(TUNIU_FLIGHT_API,$orderinfojson,'POST'); $returnJson = post_tuniu(TUNIU_FLIGHT_API, $orderinfojson, 'POST');
echo $returnJson; echo $returnJson;
} }
} }
//机票退票费查询接口 //机票退票费查询接口
public function refundfee(){ public function refundfee()
{
$order = $this->input->get_post('order'); $order = $this->input->get_post('order');
$ticketcode = $this->input->get_post('ticketcode'); $ticketcode = $this->input->get_post('ticketcode');
$order = '1226443588'; $order = '1226443588';
$ticketcode = '822-2386171483'; $ticketcode = '822-2386171483';
if(empty($order)){ if (empty($order)) {
exit('订单号为空'); exit('订单号为空');
}else{ } else {
//拼接支付报文 //拼接支付报文
$timestamp = time(); $timestamp = time();
$data = '{"orderId":'.$order.',"ticketCodeList":["'.$ticketcode.'"]}'; $data = '{"orderId":' . $order . ',"ticketCodeList":["' . $ticketcode . '"]}';
$sign = md5(TUNIU_FLIGHT_KEY.$data.$timestamp); $sign = md5(TUNIU_FLIGHT_KEY . $data . $timestamp);
$refundfeejson = '{ $refundfeejson = '{
"purchaseId": '.TUNIU_FLIGHT_ID.', "purchaseId": ' . TUNIU_FLIGHT_ID . ',
"sign": "'.$sign .'", "sign": "' . $sign . '",
"timestamp":'.$timestamp.', "timestamp":' . $timestamp . ',
"function":"refundFee", "function":"refundFee",
"data":'.$data.' "data":' . $data . '
}'; }';
//echo $refundfeejson;die(); //echo $refundfeejson;die();
$returnJson = post_tuniu(TUNIU_FLIGHT_API,$refundfeejson,'POST'); $returnJson = post_tuniu(TUNIU_FLIGHT_API, $refundfeejson, 'POST');
echo $returnJson; echo $returnJson;
} }
} }
//机票退票接口 //机票退票接口
public function refundapply(){ public function refundapply()
{
$order = $this->input->get_post('order'); $order = $this->input->get_post('order');
$ticketcode = $this->input->get_post('ticketcode'); $ticketcode = $this->input->get_post('ticketcode');
$order = '1226443588'; $order = '1226443588';
$ticketcode = '822-2386171483'; $ticketcode = '822-2386171483';
if(empty($order)){ if (empty($order)) {
exit('订单号为空'); exit('订单号为空');
}else{ } else {
//拼接支付报文 //拼接支付报文
$timestamp = time(); $timestamp = time();
$data = '{"attachmentList":[],"orderId":"'.$order.'","refundReason":"行程调整","refundType":1,"ticketCodeList":["'.$ticketcode.'"]}'; $data = '{"attachmentList":[],"orderId":"' . $order . '","refundReason":"行程调整","refundType":1,"ticketCodeList":["' . $ticketcode . '"]}';
$sign = md5(TUNIU_FLIGHT_KEY.$data.$timestamp); $sign = md5(TUNIU_FLIGHT_KEY . $data . $timestamp);
$returnorderjson = '{ $returnorderjson = '{
"purchaseId": '.TUNIU_FLIGHT_ID.', "purchaseId": ' . TUNIU_FLIGHT_ID . ',
"sign": "'.$sign .'", "sign": "' . $sign . '",
"timestamp": '.$timestamp.', "timestamp": ' . $timestamp . ',
"function": "refundApply", "function": "refundApply",
"data":'.$data.' "data":' . $data . '
}'; }';
echo $returnorderjson;die(); echo $returnorderjson;
$returnJson = post_tuniu(TUNIU_FLIGHT_API,$returnorderjson,'POST'); die();
$returnJson = post_tuniu(TUNIU_FLIGHT_API, $returnorderjson, 'POST');
echo $returnJson;
}
}
//返回三字码接口
public function ajaxGetCodeAndName($flag = false)
{
//http://202.103.68.104:61/info.php/apps/flightsystem/api/ajaxGetCodeAndName/ //测试地址
$returnData = new stdClass();
$allCityNameAndCode = $this->flight_model->getAllCityCodeAndName();
$returnJson = json_encode($allCityNameAndCode);
//return $returnJson;
if ($flag) {
return $returnJson;
} else {
echo $returnJson; echo $returnJson;
} }
} }
//获取所有机场信息
public function ajaxGetAirPort()
{
$returnData = new stdClass();
$airPortCodeAndName = $this->flight_model->getAllAirPort();
$returnData = array();
foreach ($airPortCodeAndName as $items) {
$returnData[$items->air_threeChar] = $items->air_english_name;
}
$returnJson = json_encode($returnData);
print_r($returnJson);
}
//查询接口
public function search()
{
//http://202.103.68.104:61/info.php/apps/flightsystem/api/search/?departDate=2021-09-04&departCode=BJS&arriveCode=KWL //测试地址
$departDate = $this->input->get_post('departDate');
$departCode = $this->input->get_post('departCode');
$arriveCode = $this->input->get_post('arriveCode');
$flightnumber = $this->input->get_post('flightnumber');
if (empty($departDate) || empty($departCode) || empty($arriveCode)) {
exit('error');
}
$postJson = get_serach_json($departDate, $departCode, $arriveCode, $flightnumber);
//echo $postJson;die();
$returnJson = post_tuniu(TUNIU_FLIGHT_API, $postJson, 'POST');
$returnData = json_decode($returnJson);
//print_r($returnJson);die();
$cacheData = new stdClass();
if (!empty($returnData)) {
$cacheData->success = $returnData->success;
$cacheData->msg = $returnData->msg;
$cacheData->errorCode = $returnData->errorCode;
$cacheData->queryResultList = array();
$i = 0;
//$airPortCodeAndName = json_decode($redis->get('airPortCodeAndName'));
$airPortCodeAndName = $this->ajaxGetCodeAndName(true);
//print_r($airPortCodeAndName);die();
foreach ($returnData->data->queryResultList as $items) {
$cacheData->queryResultList[$i] = new stdClass();
$cacheData->queryResultList[$i]->flight = new stdClass();
//航班信息
$cacheData->queryResultList[$i]->flight->flightNo = $items->flight->flightNo;
$cacheData->queryResultList[$i]->flight->craftType = $items->flight->craftType;
$cacheData->queryResultList[$i]->flight->airlineCompany = $items->flight->airlineCompany;
$cacheData->queryResultList[$i]->flight->airlineIataCode = $items->flight->airlineIataCode;
$cacheData->queryResultList[$i]->flight->arriveAirportCode = $items->flight->arriveAirportCode;
$cacheData->queryResultList[$i]->flight->arriveAirportName = $items->flight->arriveAirportName;
$arriveAirportCode = $items->flight->arriveAirportCode;
$cacheData->queryResultList[$i]->flight->arriveAirportNameEn = $this->flight_model->getAirPortNameEn($items->flight->arriveAirportCode); //$airPortCodeAndName->$arriveAirportCode;
$cacheData->queryResultList[$i]->flight->arriveAirportTerminal = $items->flight->arriveAirportTerminal;
$cacheData->queryResultList[$i]->flight->arriveCityIataCode = $items->flight->arriveCityIataCode;
$cacheData->queryResultList[$i]->flight->arriveCityName = $items->flight->arriveCityName;
$cacheData->queryResultList[$i]->flight->arriveDate = $items->flight->arriveDate;
$cacheData->queryResultList[$i]->flight->arriveTime = $items->flight->arriveTime;
$cacheData->queryResultList[$i]->flight->departAirportCode = $items->flight->departAirportCode;
$cacheData->queryResultList[$i]->flight->departAirportName = $items->flight->departAirportName;
$departAirportCode = $items->flight->departAirportCode;
$cacheData->queryResultList[$i]->flight->departAirportNameEn = $this->flight_model->getAirPortNameEn($items->flight->departAirportCode); //$airPortCodeAndName->$departAirportCode;
$cacheData->queryResultList[$i]->flight->departAirportTerminal = $items->flight->departAirportTerminal;
$cacheData->queryResultList[$i]->flight->departCityIataCode = $items->flight->departCityIataCode;
$cacheData->queryResultList[$i]->flight->departCityName = $items->flight->departCityName;
$cacheData->queryResultList[$i]->flight->departDate = $items->flight->departDate;
$cacheData->queryResultList[$i]->flight->departTime = $items->flight->departTime;
$cacheData->queryResultList[$i]->flight->duration = $items->flight->duration;
$cacheData->queryResultList[$i]->flight->meal = $items->flight->meal;
$cacheData->queryResultList[$i]->flight->stopInformation = $items->flight->stopInformation;
$cacheData->queryResultList[$i]->flight->stopNum = $items->flight->stopNum;
$cacheData->queryResultList[$i]->flight->stopPointList = $items->flight->stopPointList;
//航班对应可用的资源列表
$cacheData->queryResultList[$i]->resourceList = array();
$j = 0;
foreach ($items->resourceList as $resourceItems) {
$cacheData->queryResultList[$i]->resourceList[$j] = new stdClass();
$cacheData->queryResultList[$i]->resourceList[$j]->price = new stdClass();
$cacheData->queryResultList[$i]->resourceList[$j]->price->adultPrice = $resourceItems->price->adultPrice;
$cacheData->queryResultList[$i]->resourceList[$j]->price->childPrice = $resourceItems->price->childPrice;
$cacheData->queryResultList[$i]->resourceList[$j]->price->adultFacePrice = $resourceItems->price->adultFacePrice;
$cacheData->queryResultList[$i]->resourceList[$j]->price->childFacePrice = $resourceItems->price->childFacePrice;
$cacheData->queryResultList[$i]->resourceList[$j]->price->cabinClassFullPrice = $resourceItems->price->cabinClassFullPrice;
$cacheData->queryResultList[$i]->resourceList[$j]->price->adultTax = $resourceItems->price->adultTax;
$cacheData->queryResultList[$i]->resourceList[$j]->cabinList = array();
$k = 0;
foreach ($resourceItems->cabinList as $cabinListItems) {
$cacheData->queryResultList[$i]->resourceList[$j]->cabinList[$k] = new stdClass();
$cacheData->queryResultList[$i]->resourceList[$j]->cabinList[$k]->cabinClass = $cabinListItems->cabinClass;
$cacheData->queryResultList[$i]->resourceList[$j]->cabinList[$k]->cabinClassName = $cabinListItems->cabinClassName;
$cacheData->queryResultList[$i]->resourceList[$j]->cabinList[$k]->freeLuggage = $cabinListItems->freeLuggage;
$cacheData->queryResultList[$i]->resourceList[$j]->cabinList[$k]->freeLuggageUnit = $cabinListItems->freeLuggageUnit;
$cacheData->queryResultList[$i]->resourceList[$j]->cabinList[$k]->billType = $cabinListItems->billType;
$cacheData->queryResultList[$i]->resourceList[$j]->cabinList[$k]->seatStatus = $cabinListItems->seatStatus;
$k++;
}
$j++;
}
$i++;
}
print_r(json_encode($cacheData));
}
}
} }

@ -0,0 +1,77 @@
<?php
class flight_model extends CI_Model{
function __construct(){
parent::__construct();
$this->INFO = $this->load->database('INFO', TRUE);
$this->HT=$this->load->database('HT',TRUE);
}
//public $FlightAPI_Code = "http://202.103.68.156:9032"; //本地
public $FlightAPI_Code = "https://www.trainspread.com"; //网前
public function getAllCityCodeAndName(){
$sql = "select city_chinese_name,city_english_name,city_threeChar from city_threeChar";
$query = $this->INFO->query($sql);
return $query->result();
}
public function getAllAirPort(){
$sql = "select air_threeChar,air_english_name from air_threeChar";
$query = $this->INFO->query($sql);
return $query->result();
}
/**
* 根据机场code获取对于的机场英文名 20201229 zp 接口数据突然无法获取机场英文名,估计是删除缓存获取以后的错误
*/
public function getAirPortNameEn($code){
$sql = "select top 1 air_english_name from air_threeChar where air_threeChar ='".$code."'";
$query = $this->INFO->query($sql);
$row = $query->row();
if (isset($row)){
return $row->air_english_name;
}else{
return "";
}
}
/*
* 根据三字码获取对应城市的英文名称
*/
public function getCityNameFromCode($code){
$result = "";
$Url_FlightCode = $this->FlightAPI_Code."/flight/ajaxGetCodeAndName/";
$FlightCodeList = get_http($Url_FlightCode); //获取接口机场列表Json
$Json_FlightCode = json_decode($FlightCodeList);
if (!empty($code)){
foreach($Json_FlightCode as $Item){
if ($Item->city_threeChar==$code){
$result=$Item->city_english_name;
break;
}
}
}
return $result;
}
/*
* 根据航线二字码获取对应的航空公司英文名
*/
public function getAirlineNameEn($code){
$sql = "select top 1 NameEN,NameCN from AirCompany where Code='".$code."'";
$query = $this->HT->query($sql);
$row = $query->row();
if (isset($row)){
return $row->NameEN;
}else{
return "";
}
}
}
?>
Loading…
Cancel
Save