나이스페이 승인 취소 안정성 보강

(cherry picked from commit 7c26e621c66805b2d162ed0293e570e29a11b4e8)
This commit is contained in:
thisgun
2026-08-24 07:44:22 +00:00
parent bb4d345add
commit ff1f6d723b
4 changed files with 31 additions and 2 deletions
+8
View File
@@ -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);
}
+14 -1
View File
@@ -51,7 +51,20 @@ try{
* <Cancel Request>
****************************************************************************************
*/
$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
+8
View File
@@ -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);
}
+1 -1
View File
@@ -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) {