Files
Gnuboard5/shop/ajax.orderdatasave.php
T
whitedot e784186b0f feat: SIRK 전용 카카오페이 연동 종료와 기존 주문 지원 절차 추가
전용 신규 결제와 자동 취소를 차단하고 기존 주문 조회 및 실제 PG 취소 확인 후 수동 정리를 지원한다. 기존 DB와 일반 PG 경로를 보존하고 5.6.37 전환 및 사후지원 절차를 문서화한다.

검증: 변경 PHP 문법, SIRK 요청 차단, 설치 스키마 및 쇼핑몰 후설치 검사 통과. 실제 PG 결제·취소 검증은 별도 진행한다.
2026-09-09 07:58:05 +00:00

81 lines
2.7 KiB
PHP

<?php
include_once('./_common.php');
// 요청 출처 검증
if (function_exists('check_request_origin')) check_request_origin(G5_SHOP_URL);
if(empty($_POST))
die('정보가 넘어오지 않았습니다.');
// 일정 기간이 경과된 임시 데이터 삭제
/*
$limit_time = date("Y-m-d H:i:s", (G5_SERVER_TIME - 86400 * 1));
$sql = " delete from {$g5['g5_shop_order_data_table']} where dt_type = '1' and dt_time < '$limit_time' ";
sql_query($sql);
*/
$od_settle_case = isset($_POST['od_settle_case']) ? clean_xss_tags($_POST['od_settle_case'], 1, 1) : '';
if ($od_settle_case === 'KAKAOPAY') {
die('이 결제 방식은 더 이상 지원하지 않습니다. 다른 결제수단을 선택해 주십시오.');
}
// 저장되는 원본에도 정제한 값을 반영한다.
$_POST['od_settle_case'] = $od_settle_case;
// 결제환경 정보는 요청값을 사용하지 않고 서버에서 결정한다.
$_POST['od_test'] = $default['de_card_test'];
$_POST['od_ip'] = function_exists('get_real_client_ip') ? get_real_client_ip() : $_SERVER['REMOTE_ADDR'];
if(isset($_POST['pp_id']) && $_POST['pp_id']) {
$od_id = get_session('ss_personalpay_id');
$cart_id = 0;
$sql = "select pp_use, pp_tno from {$g5['g5_shop_personalpay_table']} where pp_id = '$od_id' ";
$pp_row = sql_fetch($sql);
if( $pp_row['pp_tno'] ){
die('해당 개인결제는 이미 결제되었습니다.');
} else if( ! $pp_row['pp_use'] ){
die('해당 개인결제는 사용이 금지되어 있습니다.');
}
} else {
$od_id = get_session('ss_order_id');
$_POST['sw_direct'] = get_session('ss_direct');
if ($_POST['sw_direct']) {
$cart_id = get_session('ss_cart_direct');
}
else {
$cart_id = get_session('ss_cart_id');
}
if( G5_IS_MOBILE && $default['de_pg_service'] == 'inicis' ){
$_POST['post_cart_id'] = $cart_id;
}
}
$dt_data = base64_encode(serialize($_POST));
// 동일한 주문번호가 있는지 체크
$sql = " select count(*) as cnt from {$g5['g5_shop_order_data_table']} where od_id = '$od_id' ";
$row = sql_fetch($sql);
if($row['cnt'])
sql_query(" delete from {$g5['g5_shop_order_data_table']} where od_id = '$od_id' ");
$default_pg = $default['de_pg_service'];
if( $od_settle_case == '삼성페이' ){ //현재 삼성페이인 경우에는 pg를 inicis로 처리
$default_pg = 'inicis';
}
$sql = " insert into {$g5['g5_shop_order_data_table']}
set od_id = '$od_id',
cart_id = '$cart_id',
mb_id = '{$member['mb_id']}',
dt_pg = '$default_pg',
dt_data = '$dt_data',
dt_time = '".G5_TIME_YMDHIS."' ";
sql_query($sql);
die('');