From ff1f6d723b347683240b673caa0e5dd75b0c045d Mon Sep 17 00:00:00 2001 From: thisgun Date: Fri, 12 Jun 2026 08:45:30 +0000 Subject: [PATCH] =?UTF-8?q?=EB=82=98=EC=9D=B4=EC=8A=A4=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=20=EC=8A=B9=EC=9D=B8=20=EC=B7=A8=EC=86=8C=20=EC=95=88=EC=A0=95?= =?UTF-8?q?=EC=84=B1=20=EB=B3=B4=EA=B0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 7c26e621c66805b2d162ed0293e570e29a11b4e8) --- mobile/shop/nicepay/nicepay_result.php | 8 ++++++++ shop/nicepay/cancel_process.php | 15 ++++++++++++++- shop/nicepay/nicepay_result.php | 8 ++++++++ shop/settle_nicepay_common.php | 2 +- 4 files changed, 31 insertions(+), 2 deletions(-) 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) {