테스트 사이트 - 개발 중인 베타 버전입니다

나이스페이먼츠 + 무통장입금 오류 채택완료

해피정 3개월 전 조회 889

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

 

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

 

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

 

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

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

 

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

저만 이런가요? ㅠㅠ

 

그누보드5 버전 : 5.6.9

호스팅 : 카페24

PHP : 7.4.5p1

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
3개월 전

* /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 연동이 안되어야 하는데..
지금 이상하게 되고 있다고 했으니.. 여기서 실마를 찾아나갈 수도 있을 것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해피정
3개월 전
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 !== '무통장') {

댓글을 작성하려면 로그인이 필요합니다.

3개월 전

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

print_r2($_POST);

exit;

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해피정
3개월 전
감사합니다 echo 찍으면서 오류 위치를 확인해서 수정했습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인