전용 신규 결제와 자동 취소를 차단하고 기존 주문 조회 및 실제 PG 취소 확인 후 수동 정리를 지원한다. 기존 DB와 일반 PG 경로를 보존하고 5.6.37 전환 및 사후지원 절차를 문서화한다. 검증: 변경 PHP 문법, SIRK 요청 차단, 설치 스키마 및 쇼핑몰 후설치 검사 통과. 실제 PG 결제·취소 검증은 별도 진행한다.
60 lines
2.2 KiB
PHP
60 lines
2.2 KiB
PHP
<?php
|
|
$sub_menu = '400400';
|
|
include_once('./_common.php');
|
|
|
|
auth_check_menu($auth, $sub_menu, "w");
|
|
|
|
check_admin_token();
|
|
|
|
$od_id = isset($_POST['od_id']) ? safe_replace_regex($_POST['od_id'], 'od_id') : '';
|
|
$mod_memo = isset($_POST['mod_memo']) ? trim(clean_xss_tags($_POST['mod_memo'], 1, 1)) : '';
|
|
$tax_mny = isset($_POST['mod_tax_mny']) ? preg_replace('/[^0-9]/', '', $_POST['mod_tax_mny']) : 0;
|
|
$free_mny = isset($_POST['mod_free_mny']) ? preg_replace('/[^0-9]/', '', $_POST['mod_free_mny']) : 0;
|
|
|
|
if(!$tax_mny && !$free_mny)
|
|
alert('과세 취소금액 또는 비과세 취소금액을 입력해 주십시오.');
|
|
|
|
if(!trim($mod_memo))
|
|
alert('요청사유를 입력해 주십시오.');
|
|
|
|
// 주문정보
|
|
$sql = " select * from {$g5['g5_shop_order_table']} where od_id = '$od_id' ";
|
|
$od = sql_fetch($sql);
|
|
|
|
if(! (isset($od['od_id']) && $od['od_id']))
|
|
alert_close('주문정보가 존재하지 않습니다.');
|
|
|
|
if($od['od_settle_case'] == '계좌이체' && substr($od['od_receipt_time'], 0, 10) >= G5_TIME_YMD)
|
|
alert_close('실시간 계좌이체건의 부분취소 요청은 결제일 익일에 가능합니다.');
|
|
|
|
if ($od['od_pg'] === 'KAKAOPAY') {
|
|
alert_close('SIRK 전용 카카오페이의 자동 취소 지원이 종료되었습니다. 이니시스 상점관리자에서 실제 취소 후 주문 상태와 환불금액을 확인해 주십시오.');
|
|
}
|
|
|
|
// 금액비교
|
|
$od_misu = abs($od['od_misu']);
|
|
|
|
if(($tax_mny && $free_mny) && ($tax_mny + $free_mny) > $od_misu)
|
|
alert('과세, 비과세 취소금액의 합을 '.display_price($od_misu).' 이하로 입력해 주십시오.');
|
|
|
|
if($tax_mny && $tax_mny > $od_misu)
|
|
alert('과세 취소금액을 '.display_price($od_misu).' 이하로 입력해 주십시오.');
|
|
|
|
if($free_mny && $free_mny > $od_misu)
|
|
alert('비과세 취소금액을 '.display_price($od_misu).' 이하로 입력해 주십시오.');
|
|
|
|
// PG사별 부분취소 실행
|
|
include_once(G5_SHOP_PATH.'/'.strtolower($od['od_pg']).'/orderpartcancel.inc.php');
|
|
|
|
include_once(G5_PATH.'/head.sub.php');
|
|
?>
|
|
|
|
<script>
|
|
alert("<?php echo get_text($od['od_settle_case']); ?> 부분취소 처리됐습니다.");
|
|
opener.document.location.reload();
|
|
self.close();
|
|
</script>
|
|
|
|
<?php
|
|
include_once(G5_PATH.'/tail.sub.php');
|