diff --git a/mobile/shop/nicepay/nicepay_result.php b/mobile/shop/nicepay/nicepay_result.php index d58db5148..0c8162b08 100644 --- a/mobile/shop/nicepay/nicepay_result.php +++ b/mobile/shop/nicepay/nicepay_result.php @@ -166,6 +166,14 @@ if($authResultCode === "0000"){ $responseSignData = bin2hex(hash('sha256', $tno . $mid . $response_amt . $merchantKey, true)); if ($responseSignature != $responseSignData) { + if($amount > 0 && $tno) { + $od_id = $moid; + $cancel_msg = '승인 응답 유효성 검증 실패'; + $cancelAmt = $amount; + $partialCancelCode = 0; + include G5_SHOP_PATH.'/nicepay/cancel_process.php'; + } + alert("승인 응답 유효성 검증이 틀려서 결제를 진행할수 없습니다.", G5_SHOP_URL); } diff --git a/shop/nicepay/cancel_process.php b/shop/nicepay/cancel_process.php index 8e35c8606..791778f93 100644 --- a/shop/nicepay/cancel_process.php +++ b/shop/nicepay/cancel_process.php @@ -51,7 +51,20 @@ try{ * **************************************************************************************** */ - $cancelUrl = (isset($od['od_settle_case']) && $od['od_settle_case'] === '가상계좌') + $isNicepayVbankCancel = false; + if (isset($od['od_settle_case']) && $od['od_settle_case'] === '가상계좌') { + $isNicepayVbankCancel = true; + } else if (isset($od_settle_case) && $od_settle_case === '가상계좌') { + $isNicepayVbankCancel = true; + } else if (isset($pp_settle_case) && $pp_settle_case === '가상계좌') { + $isNicepayVbankCancel = true; + } else if (isset($nicepay_settle_case) && $nicepay_settle_case === '가상계좌') { + $isNicepayVbankCancel = true; + } else if (isset($pay_method) && $pay_method === 'VBANK') { + $isNicepayVbankCancel = true; + } + + $cancelUrl = $isNicepayVbankCancel ? "https://webapi.nicepay.co.kr/webapi/cancel_process.jsp" : "https://pg-api.nicepay.co.kr/webapi/cancel_process.jsp"; $response = nicepay_reqPost($data, $cancelUrl); //Cancel API call diff --git a/shop/nicepay/nicepay_result.php b/shop/nicepay/nicepay_result.php index 3f7536cb4..23b1394d9 100644 --- a/shop/nicepay/nicepay_result.php +++ b/shop/nicepay/nicepay_result.php @@ -166,6 +166,14 @@ if($authResultCode === "0000"){ $responseSignData = bin2hex(hash('sha256', $tno . $mid . $response_amt . $merchantKey, true)); if ($responseSignature != $responseSignData) { + if($amount > 0 && $tno) { + $od_id = $moid; + $cancel_msg = '승인 응답 유효성 검증 실패'; + $cancelAmt = $amount; + $partialCancelCode = 0; + include G5_SHOP_PATH.'/nicepay/cancel_process.php'; + } + alert("승인 응답 유효성 검증이 틀려서 결제를 진행할수 없습니다.", G5_SHOP_URL); } diff --git a/shop/settle_nicepay_common.php b/shop/settle_nicepay_common.php index 82036f16d..80956153c 100644 --- a/shop/settle_nicepay_common.php +++ b/shop/settle_nicepay_common.php @@ -53,7 +53,7 @@ if (in_array($_SERVER['REMOTE_ADDR'], $pg_allow_ips)) { $result = false; $is_personalpay_order = (isset($row['pp_id']) && $row['pp_id']); - $receipt_time = preg_replace("/([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/", "\\1-\\2-\\3 \\4:\\5:\\6", $AuthDate); + $receipt_time = preg_replace("/([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/", "20\\1-\\2-\\3 \\4:\\5:\\6", $AuthDate); if($is_personalpay_order) { if((int)$row['pp_price'] === $Amt) {