나이스페이먼츠 + 무통장입금 오류 채택완료
나이스페이먼츠 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 연동이 안되어야 하는데..
지금 이상하게 되고 있다고 했으니.. 여기서 실마를 찾아나갈 수도 있을 것 같습니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
// 주문정보 입력 오류시 결제 취소
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 !== '무통장') {