KG이니시스 INIpay PRO 결제 연동 및 결제 처리 현황 추가

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
thisgun
2026-07-23 08:03:16 +00:00
co-authored by Claude Fable 5
parent 1f48f6bd80
commit acdbcfd8ba
38 changed files with 4506 additions and 87 deletions
+6 -1
View File
@@ -1,6 +1,11 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if (!empty($inicis_pro_use)) {
require(G5_SHOP_PATH.'/inicis/pro/orderform.1.php');
return;
}
if(!function_exists('get_inicis_app_scheme')){
function get_inicis_app_scheme(){
$user_agent = $_SERVER['HTTP_USER_AGENT'];
@@ -56,4 +61,4 @@ if(!function_exists('get_inicis_app_scheme')){
<input type="hidden" name="P_TAX" value="">
<input type="hidden" name="P_TAXFREE" value="">
<?php } ?>
</form>
</form>
+17 -8
View File
@@ -4,7 +4,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
require_once(G5_MSHOP_PATH.'/settle_'.$default['de_pg_service'].'.inc.php');
require_once(G5_SHOP_PATH.'/settle_kakaopay.inc.php');
if( is_inicis_simple_pay() ){ //이니시스 삼성페이 또는 Lpay 사용시
if( empty($inicis_pro_use) && is_inicis_simple_pay() ){ //이니시스 삼성페이 또는 Lpay 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/incSamsungpayCommon.php');
}
@@ -265,7 +265,7 @@ ob_end_clean();
// 결제대행사별 코드 include (결제등록 필드)
require_once(G5_MSHOP_PATH.'/'.$default['de_pg_service'].'/orderform.1.php');
if( is_inicis_simple_pay() ){ //이니시스 삼성페이 또는 lpay 사용시
if( empty($inicis_pro_use) && is_inicis_simple_pay() ){ //이니시스 삼성페이 또는 lpay 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/orderform.1.php');
}
@@ -698,18 +698,21 @@ if($is_kakaopay_use) {
//이니시스 삼성페이
if($default['de_samsung_pay_use']) {
$multi_settle++;
echo '<li><input type="radio" id="od_settle_samsungpay" data-case="samsungpay" name="od_settle_case" value="삼성페이" '.$checked.'> <label for="od_settle_samsungpay" class="samsung_pay lb_icon">삼성페이</label></li>'.PHP_EOL;
$checked = '';
}
//이니시스 Lpay
if($default['de_inicis_lpay_use']) {
$multi_settle++;
echo '<li><input type="radio" id="od_settle_inicislpay" data-case="lpay" name="od_settle_case" value="lpay" '.$checked.'> <label for="od_settle_inicislpay" class="inicis_lpay">L.pay</label></li>'.PHP_EOL;
$checked = '';
}
//이니시스 카카오페이
if($default['de_inicis_kakaopay_use']) {
$multi_settle++;
echo '<li><input type="radio" id="od_settle_inicis_kakaopay" data-case="inicis_kakaopay" name="od_settle_case" value="inicis_kakaopay" '.$checked.'> <label for="od_settle_inicis_kakaopay" title="KG 이니시스 카카오페이" class="inicis_kakaopay">KG 이니시스 카카오페이</label></li>'.PHP_EOL;
$checked = '';
}
@@ -770,7 +773,7 @@ if($is_kakaopay_use) {
echo '</div>';
}
if ($default['de_bank_use'] || $default['de_vbank_use'] || $default['de_iche_use'] || $default['de_card_use'] || $default['de_hp_use'] || $default['de_easy_pay_use'] || is_inicis_simple_pay() ) {
if ($default['de_bank_use'] || $default['de_vbank_use'] || $default['de_iche_use'] || $default['de_card_use'] || $default['de_hp_use'] || $default['de_easy_pay_use'] || is_inicis_simple_pay()) {
echo '</div>';
}
@@ -783,7 +786,7 @@ if($is_kakaopay_use) {
// 결제대행사별 코드 include (결제대행사 정보 필드 및 주분버튼)
require_once(G5_MSHOP_PATH.'/'.$default['de_pg_service'].'/orderform.2.php');
if( is_inicis_simple_pay() ){ //삼성페이 또는 L.pay 사용시
if( empty($inicis_pro_use) && is_inicis_simple_pay() ){ //삼성페이 또는 L.pay 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/orderform.2.php');
}
@@ -813,7 +816,7 @@ if($is_kakaopay_use) {
// 결제대행사별 코드 include (에스크로 안내)
require_once(G5_MSHOP_PATH.'/'.$default['de_pg_service'].'/orderform.3.php');
if( is_inicis_simple_pay() ){ //삼성페이 사용시
if( empty($inicis_pro_use) && is_inicis_simple_pay() ){ //삼성페이 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/orderform.3.php');
}
}
@@ -822,7 +825,7 @@ if($is_kakaopay_use) {
</div>
<?php
if( is_inicis_simple_pay() ){ //삼성페이 사용시
if( empty($inicis_pro_use) && is_inicis_simple_pay() ){ //삼성페이 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/order.script.php');
}
@@ -1333,7 +1336,7 @@ function pay_approval()
var form_order_method = '';
if( settle_method == "삼성페이" || settle_method == "lpay" || settle_method == "inicis_kakaopay" ){
if( (settle_method == "삼성페이" || settle_method == "lpay" || settle_method == "inicis_kakaopay") && <?php echo !empty($inicis_pro_use) ? 'false' : 'true'; ?> ){
form_order_method = 'samsungpay';
} else if(settle_method == "간편결제") {
if(jQuery("input[name='od_settle_case']:checked" ).attr("data-pay") === "naverpay"){
@@ -1479,6 +1482,7 @@ function pay_approval()
f.windowTarget.value = 'self';
<?php } else if($default['de_pg_service'] == 'inicis') { ?>
<?php if (empty($inicis_pro_use)) { ?>
var paymethod = "";
var width = 330;
var height = 480;
@@ -1535,6 +1539,7 @@ function pay_approval()
<?php } ?>
f.P_RETURN_URL.value = "<?php echo $return_url.$od_id; ?>";
f.action = "https://mobile.inicis.com/smart/" + paymethod + "/";
<?php } ?>
<?php } else if($default['de_pg_service'] == 'nicepay') { ?>
f.Amt.value = f.good_mny.value;
@@ -1636,6 +1641,10 @@ function pay_approval()
return false;
}
<?php if ($default['de_pg_service'] == 'inicis' && !empty($inicis_pro_use)) { ?>
return inicis_pro_pay("<?php echo $od_id; ?>", "MOBILE");
<?php } ?>
<?php if ($default['de_pg_service'] == 'nicepay') { ?>
nicepayStart(f);
return false;
@@ -1862,4 +1871,4 @@ $(function(){
$("#od_hope_date").datepicker({ changeMonth: true, changeYear: true, dateFormat: "yy-mm-dd", showButtonPanel: true, yearRange: "c-99:c+99", minDate: "+<?php echo (int)$default['de_hope_date_after']; ?>d;", maxDate: "+<?php echo (int)$default['de_hope_date_after'] + 6; ?>d;" });
});
<?php } ?>
</script>
</script>
+28 -7
View File
@@ -372,7 +372,10 @@ else if ($od_settle_case == "계좌이체")
include G5_SHOP_PATH.'/toss/toss_result.php';
break;
case 'inicis':
include G5_MSHOP_PATH.'/inicis/pay_result.php';
if (!empty($_POST['inicis_pro']))
include G5_SHOP_PATH.'/inicis/pro/pay_result.php';
else
include G5_MSHOP_PATH.'/inicis/pay_result.php';
break;
case 'nicepay':
include G5_MSHOP_PATH.'/nicepay/nicepay_result.php';
@@ -404,7 +407,10 @@ else if ($od_settle_case == "가상계좌")
include G5_SHOP_PATH.'/toss/toss_result.php';
break;
case 'inicis':
include G5_MSHOP_PATH.'/inicis/pay_result.php';
if (!empty($_POST['inicis_pro']))
include G5_SHOP_PATH.'/inicis/pro/pay_result.php';
else
include G5_MSHOP_PATH.'/inicis/pay_result.php';
break;
case 'nicepay':
include G5_MSHOP_PATH.'/nicepay/nicepay_result.php';
@@ -436,7 +442,10 @@ else if ($od_settle_case == "휴대폰")
include G5_SHOP_PATH.'/toss/toss_result.php';
break;
case 'inicis':
include G5_MSHOP_PATH.'/inicis/pay_result.php';
if (!empty($_POST['inicis_pro']))
include G5_SHOP_PATH.'/inicis/pro/pay_result.php';
else
include G5_MSHOP_PATH.'/inicis/pay_result.php';
break;
case 'nicepay':
include G5_MSHOP_PATH.'/nicepay/nicepay_result.php';
@@ -466,7 +475,10 @@ else if ($od_settle_case == "신용카드")
include G5_SHOP_PATH.'/toss/toss_result.php';
break;
case 'inicis':
include G5_MSHOP_PATH.'/inicis/pay_result.php';
if (!empty($_POST['inicis_pro']))
include G5_SHOP_PATH.'/inicis/pro/pay_result.php';
else
include G5_MSHOP_PATH.'/inicis/pay_result.php';
break;
case 'nicepay':
include G5_MSHOP_PATH.'/nicepay/nicepay_result.php';
@@ -498,7 +510,10 @@ else if ($od_settle_case == "간편결제")
include G5_SHOP_PATH.'/toss/toss_result.php';
break;
case 'inicis':
include G5_MSHOP_PATH.'/inicis/pay_result.php';
if (!empty($_POST['inicis_pro']))
include G5_SHOP_PATH.'/inicis/pro/pay_result.php';
else
include G5_MSHOP_PATH.'/inicis/pay_result.php';
break;
case 'nicepay':
include G5_MSHOP_PATH.'/nicepay/nicepay_result.php';
@@ -523,7 +538,10 @@ else if ($od_settle_case == "간편결제")
else if ( is_inicis_order_pay($od_settle_case) ) //이니시스의 삼성페이 또는 L.pay 또는 이니시스 카카오페이
{
// 이니시스에서만 지원
include G5_MSHOP_PATH.'/inicis/pay_result.php';
if (!empty($_POST['inicis_pro']))
include G5_SHOP_PATH.'/inicis/pro/pay_result.php';
else
include G5_MSHOP_PATH.'/inicis/pay_result.php';
$od_tno = $tno;
$od_app_no = $app_no;
@@ -751,6 +769,9 @@ if(!$result) {
die('<p>고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.</p><p>'.strtoupper($od_pg).'를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.');
}
if (!empty($_POST['inicis_pro']) && function_exists('inicis_pro_audit_order_saved'))
inicis_pro_audit_order_saved($od_id, $od_tno, 'order', 'mobile');
// 회원이면서 포인트를 사용했다면 포인트 테이블에 사용을 추가
// 동시 주문 race condition 방지 — 회원 단위 GET_LOCK + 잔액 재조회
if ($is_member && $od_receipt_point) {
@@ -1013,7 +1034,7 @@ set_session('ss_orderview_uid', $uid);
$sql = " delete from {$g5['g5_shop_order_data_table']} where od_id = '$od_id' and dt_pg = '$od_pg' ";
sql_query($sql);
if( $od_pg == 'inicis' && $od_tno ){
if( $od_pg == 'inicis' && $od_tno && empty($_POST['inicis_pro']) ){
$sql = "delete from {$g5['g5_shop_inicis_log_table']} where oid = '$od_id' and P_TID = '$od_tno' ";
sql_query($sql, false);
}
+7 -1
View File
@@ -230,6 +230,7 @@ function pay_approval()
<?php } ?>
f.windowTarget.value = 'self';
<?php } else if($default['de_pg_service'] == 'inicis') { ?>
<?php if (empty($inicis_pro_use)) { ?>
var paymethod = "";
var width = 330;
var height = 480;
@@ -261,6 +262,7 @@ function pay_approval()
<?php } ?>
f.P_RETURN_URL.value = "<?php echo $return_url.$pp_id; ?>";
f.action = "https://mobile.inicis.com/smart/" + paymethod + "/";
<?php } ?>
<?php } else if($default['de_pg_service'] == 'nicepay') { ?>
f.Amt.value = f.good_mny.value;
@@ -330,6 +332,10 @@ function pay_approval()
alert(save_result);
return false;
}
<?php if ($default['de_pg_service'] == 'inicis' && !empty($inicis_pro_use)) { ?>
return inicis_pro_pay("<?php echo $od_id; ?>", "MOBILE");
<?php } ?>
<?php if($default['de_pg_service'] == 'nicepay') { ?>
nicepayStart(f);
@@ -421,4 +427,4 @@ function payment_check(f)
return true;
}
</script>
</script>
+22 -7
View File
@@ -69,7 +69,10 @@ if ($pp_settle_case == "계좌이체")
include G5_SHOP_PATH.'/toss/toss_result.php';
break;
case 'inicis':
include G5_MSHOP_PATH.'/inicis/pay_result.php';
if (!empty($_POST['inicis_pro']))
include G5_SHOP_PATH.'/inicis/pro/pay_result.php';
else
include G5_MSHOP_PATH.'/inicis/pay_result.php';
break;
case 'nicepay':
include G5_MSHOP_PATH.'/nicepay/nicepay_result.php';
@@ -97,7 +100,10 @@ else if ($pp_settle_case == "가상계좌")
include G5_SHOP_PATH.'/toss/toss_result.php';
break;
case 'inicis':
include G5_MSHOP_PATH.'/inicis/pay_result.php';
if (!empty($_POST['inicis_pro']))
include G5_SHOP_PATH.'/inicis/pro/pay_result.php';
else
include G5_MSHOP_PATH.'/inicis/pay_result.php';
break;
case 'nicepay':
include G5_MSHOP_PATH.'/nicepay/nicepay_result.php';
@@ -126,7 +132,10 @@ else if ($pp_settle_case == "휴대폰")
include G5_SHOP_PATH.'/toss/toss_result.php';
break;
case 'inicis':
include G5_MSHOP_PATH.'/inicis/pay_result.php';
if (!empty($_POST['inicis_pro']))
include G5_SHOP_PATH.'/inicis/pro/pay_result.php';
else
include G5_MSHOP_PATH.'/inicis/pay_result.php';
break;
case 'nicepay':
include G5_MSHOP_PATH.'/nicepay/nicepay_result.php';
@@ -152,7 +161,10 @@ else if ($pp_settle_case == "신용카드")
include G5_SHOP_PATH.'/toss/toss_result.php';
break;
case 'inicis':
include G5_MSHOP_PATH.'/inicis/pay_result.php';
if (!empty($_POST['inicis_pro']))
include G5_SHOP_PATH.'/inicis/pro/pay_result.php';
else
include G5_MSHOP_PATH.'/inicis/pay_result.php';
break;
case 'nicepay':
include G5_MSHOP_PATH.'/nicepay/nicepay_result.php';
@@ -237,7 +249,7 @@ if(!$result) {
break;
}
die("<p>$sql<p>" . sql_error_info() . "<p>error file : {$_SERVER['SCRIPT_NAME']}");
die('개인결제 정보를 처리하는 중 오류가 발생했습니다. 결제 취소 여부를 관리자에게 문의해 주십시오.');
}
// 주문번호가 있으면 결제정보 반영
@@ -281,7 +293,7 @@ if($pp_receipt_price > 0 && $pp['pp_id'] && $pp['od_id']) {
break;
}
die("<p>$sql<p>" . sql_error_info() . "<p>error file : {$_SERVER['SCRIPT_NAME']}");
die('주문 결제정보를 처리하는 중 오류가 발생했습니다. 결제 취소 여부를 관리자에게 문의해 주십시오.');
}
// 미수금 정보 업데이트
@@ -304,6 +316,9 @@ if($pp_receipt_price > 0 && $pp['pp_id'] && $pp['od_id']) {
}
// 주문 정보 임시 데이터 삭제
if (!empty($_POST['inicis_pro']) && function_exists('inicis_pro_audit_order_saved'))
inicis_pro_audit_order_saved($pp['pp_id'], $pp_tno, 'personal', 'mobile');
$sql = " delete from {$g5['g5_shop_order_data_table']} where od_id = '{$pp['pp_id']}' and dt_pg = '$pp_pg' ";
sql_query($sql);
@@ -321,4 +336,4 @@ if( $is_noti_pay ){
return;
}
goto_url(G5_SHOP_URL.'/personalpayresult.php?pp_id='.$pp['pp_id'].'&amp;uid='.$uid);
goto_url(G5_SHOP_URL.'/personalpayresult.php?pp_id='.$pp['pp_id'].'&amp;uid='.$uid);
+4 -1
View File
@@ -2,6 +2,7 @@
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define('G5_MOBILE_INICIS_SETTLE', true);
$inicis_pro_use = isset($default['de_inicis_pro_use']) && (int) $default['de_inicis_pro_use'] === 1;
// curl 체크
if (!function_exists('curl_init')) {
@@ -108,7 +109,9 @@ $inicis_cardpoint = $default['de_inicis_cartpoint_use'] ? '&cp_yn=Y' : '';
//$inicis_cardpoint .= ''; // &merc_noint=Y&noint_quota=카드사코드-개월:개월^추가카드사코드-개월:개월:개월 형식으로 설정
require_once(G5_SHOP_PATH.'/inicis/libs/inicis_youngcart_fn.php');
if ($inicis_pro_use)
require_once(G5_SHOP_PATH.'/inicis/pro/inicis_pro.lib.php');
$noti_url = G5_MSHOP_URL.'/inicis/settle_common.php';
$next_url = G5_MSHOP_URL.'/inicis/pay_approval.php';
$return_url = G5_MSHOP_URL.'/inicis/pay_return.php?oid=';
$return_url = G5_MSHOP_URL.'/inicis/pay_return.php?oid=';