나이스페이먼츠 + 무통장입금 오류

나이스페이먼츠 + 무통장입금 오류

QA

나이스페이먼츠 + 무통장입금 오류

그누보드5(영카트) 버전

5.6.9

사용 PHP 버전

7.4.5p1

본문

나이스페이먼츠 PG 선택해서 영카트5 쇼핑몰을 구성했습니다

 

신용카드, 계좌이체, 가상계좌 등은 나이스페인츠 결제창이 뜨면서 정상적으로 진행됩니다.

 

무통장입금 을 선택후 결제하기를 누르면 아래와 같이 나이스페이먼츠 오류 메시지가 뜹니다

 

고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.

NICEPAY를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.

 

무통장입금인데 PG 서비스가 연동되는 상황입니다 ㅠㅠ

저만 이런가요? ㅠㅠ

 

그누보드5 버전 : 5.6.9

호스팅 : 카페24

PHP : 7.4.5p1

이 질문에 댓글 쓰기 :

답변 2

* /shop/orderformupdate.php 소스를 보면..
if ($od_settle_case == "무통장")
{
    $od_receipt_point   = $i_temp_point;
    $od_receipt_price   = 0;

    // alert('확실히 여기 통과?');

~
else if ($od_settle_case == "신용카드")
{
    switch($default['de_pg_service']) {
        case 'lg':
            include G5_SHOP_PATH.'/lg/xpay_result.php';
            break;
        case 'inicis':
            include G5_SHOP_PATH.'/inicis/inistdpay_result.php';
            break;
        case 'nicepay':
            include G5_SHOP_PATH.'/nicepay/nicepay_result.php';
            break;

 

무통장이면.. .
            include G5_SHOP_PATH.'/nicepay/nicepay_result.php';

가 안되고.. PG 연동이 안되어야 하는데..
지금 이상하게 되고 있다고 했으니.. 여기서 실마를 찾아나갈 수도 있을 것 같습니다.

orderformupdate.php 내용중에서 아래의 구문에서 오류가 뜨는거였습니다

// 주문정보 입력 오류시 결제 취소
if(! $result || ! (isset($exists_order['od_id']) && $od_id && $exists_order['od_id'] === $od_id)) {
    if($tno) {
        $cancel_msg = '주문정보 입력 오류 : '.$sql;
        switch($od_pg) {
            case 'lg':
                include G5_SHOP_PATH.'/lg/xpay_cancel.php';
                break;
            case 'inicis':
                include G5_SHOP_PATH.'/inicis/inipay_cancel.php';
                break;
            case 'nicepay':
                $cancelAmt = (int)$pg_price;
                include G5_SHOP_PATH.'/nicepay/cancel_process.php';
                break;
            case 'KAKAOPAY':
                $_REQUEST['TID']              = $tno;
                $_REQUEST['Amt']              = $amount;
                $_REQUEST['CancelMsg']        = $cancel_msg;
                $_REQUEST['PartialCancelCode'] = 0;
                include G5_SHOP_PATH.'/kakaopay/kakaopay_cancel.php';
                break;
            default:
                include G5_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php';
                break;
        }
    }

    // 관리자에게 오류 알림 메일발송
    $error = 'order';
    include G5_SHOP_PATH.'/ordererrormail.php';
   
    if(function_exists('add_order_post_log')) add_order_post_log($cancel_msg);
    die('<p>고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.</p><p>'.strtoupper($od_pg).'를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.');
}

무통장일때의 이슈 대응이 부족한것이 아닌가 싶습니다
ChatGTP 의 도움을 받아서 아래와 같이 2곳을 수정했습니다


아래 내용을 검색하면 2곳이 나오는데요

die('<p>고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.</p><p>'.strtoupper($od_pg).'를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.');


[[[ 첫번째 ]]]

if(! $result || ! (isset($exists_order['od_id']) && $od_id && $exists_order['od_id'] === $od_id)) {
를 아래와 같이 변경
if((! $result || ! (isset($exists_order['od_id']) && $od_id && $exists_order['od_id'] === $od_id)) && $od_settle_case !== '무통장') {


[[[[ 두번째 ]]]]

// 주문정보 입력 오류시 결제 취소
if(!$result) {
를 아래와 같이 변경
if(!$result && $od_settle_case !== '무통장') {

해당만 가지고는 알 수가 없습니다. 일단 결제 넘어가는 페이지에

print_r2($_POST);

exit;

를 찍어서 값들이 정상적으로 넘어오는지 확인을 해보셔야 할 거 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 17,518
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT