나이스페이 승인 취소 안정성 보강
(cherry picked from commit 7c26e621c66805b2d162ed0293e570e29a11b4e8)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user