신용카드 결제시 완료로 자동체크
본문
sukja님과 같은 질문이며
$od_status = '주문';
$od_tno = '';
if ($od_settle_case == "무통장")
{
$od_receipt_point = $i_temp_point;
$od_receipt_price = 0;
$od_misu = $i_price - $od_receipt_price;
if($od_misu == 0) {
$od_status = '완료'; // 원래는 입금
$od_receipt_time = G5_TIME_YMDHIS;
}
}
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;
default:
include G5_SHOP_PATH.'/kcp/pp_ax_hub.php';
$bank_name = iconv("cp949", "utf-8", $bank_name);
break;
}
$od_tno = $tno;
$od_receipt_price = $amount;
$od_receipt_point = $i_temp_point;
$od_receipt_time = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/", "\\1-\\2-\\3 \\4:\\5:\\6", $app_time);
$od_deposit_name = $od_name;
$od_bank_account = $bank_name;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
if($od_misu == 0)
$od_status = '완료'; // 원래는 입금
}
else if ($od_settle_case == "가상계좌")
{
switch($default['de_pg_service']) {
case 'lg':
include G5_SHOP_PATH.'/lg/xpay_result.php';
$od_receipt_time = '0000-00-00 00:00:00';
break;
case 'inicis':
include G5_SHOP_PATH.'/inicis/inistdpay_result.php';
$od_app_no = $app_no;
break;
default:
include G5_SHOP_PATH.'/kcp/pp_ax_hub.php';
$bankname = iconv("cp949", "utf-8", $bankname);
$depositor = iconv("cp949", "utf-8", $depositor);
break;
}
$od_receipt_point = $i_temp_point;
$od_tno = $tno;
$od_receipt_price = 0;
$od_bank_account = $bankname.' '.$account;
$od_deposit_name = $depositor;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
}
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;
default:
include G5_SHOP_PATH.'/kcp/pp_ax_hub.php';
break;
}
이 코드를 뒤로 해서 신용카드 핸드폰결제에 $od_status = 완료로 해놔도
입금으로 뜨는 똑같은 현상이 일어 납니다.
? 또한 영카트에 대한 제 바램으로는 배송 배송중 배송완료가 필요 없는 사용자를
위한 가이드가 잇엇으면 합니다 :)
!-->
답변 2
아래 신용카드 부분을 완료로 해야합니다.
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;
default:
include G5_SHOP_PATH.'/kcp/pp_ax_hub.php';
$card_name = iconv("cp949", "utf-8", $card_name);
break;
}
$od_tno = $tno;
$od_app_no = $app_no;
$od_receipt_price = $amount;
$od_receipt_point = $i_temp_point;
$od_receipt_time = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/", "\\1-\\2-\\3 \\4:\\5:\\6", $app_time);
$od_bank_account = $card_name;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
if($od_misu == 0)
$od_status = '완료';
}
kcp 이용하신다면 아래 부분도 수정하세요..
shop\settle_kcp_common.php
if($result) {
if($row['od_id'])
$od_id = $row['od_id'];
else
$od_id = $order_no;
// 주문정보 체크
$sql = " select count(od_id) as cnt
from {$g5['g5_shop_order_table']}
where od_id = '$od_id'
and od_status = '주문' ";
$row = sql_fetch($sql);
if($row['cnt'] == 1) {
// 미수금 정보 업데이트
$info = get_order_info($od_id);
$sql = " update {$g5['g5_shop_order_table']}
set od_misu = '{$info['od_misu']}' ";
if($info['od_misu'] == 0)
$sql .= " , od_status = '완료' ";
$sql .= " where od_id = '$od_id' ";
sql_query($sql, FALSE);
// 장바구니 상태변경
if($info['od_misu'] == 0) {
$sql = " update {$g5['g5_shop_cart_table']}
set ct_status = '완료'
where od_id = '$od_id' ";
sql_query($sql, FALSE);
}
}
}
답변을 작성하시기 전에 로그인 해주세요.