NHN_KCP 간편결제-네이버페이,카카오페이 적용

This commit is contained in:
thisgun
2020-09-16 12:17:38 +09:00
parent 053eb7e271
commit 16c34cd0f2
38 changed files with 1071 additions and 200 deletions

View File

@ -0,0 +1,100 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 타 PG 사용시 NHN KCP 네이버페이 사용이 설정되어 있는지 체크, 그렇지 않다면 return;
if( !(function_exists('is_use_easypay') && is_use_easypay('global_nhnkcp')) ){
return;
}
?>
<!-- 거래등록 하는 kcp 서버와 통신을 위한 스크립트-->
<script src="<?php echo G5_MSHOP_URL; ?>/kcp/approval_key.js"></script>
<form name="nhnkcp_pay_form" method="POST" action="<?php echo G5_MSHOP_URL; ?>/kcp/order_approval_form.php">
<input type="hidden" name="good_name" value="<?php echo $goods; ?>">
<input type="hidden" name="good_mny" value="<?php echo $tot_price ?>" >
<input type="hidden" name="buyr_name" value="">
<input type="hidden" name="buyr_tel1" value="">
<input type="hidden" name="buyr_tel2" value="">
<input type="hidden" name="buyr_mail" value="">
<input type="hidden" name="settle_method" value="">
<input type="hidden" name="nhnkcp_pay_case" value="">
<input type="hidden" name="payco_direct" value=""> <!-- PAYCO 결제창 호출 -->
<input type="hidden" name="naverpay_direct" value="A" > <!-- NAVERPAY 결제창 호출 -->
<input type="hidden" name="kakaopay_direct" value="A" > <!-- KAKAOPAY 결제창 호출 -->
<!-- 주문번호 -->
<input type="hidden" name="ordr_idxx" value="<?php echo $od_id; ?>">
<!-- 인증수단(영문 소문자) * 반드시 대소문자 구분 -->
<input type="hidden" name="ActionResult" value="CARD">
<!-- 결제등록 키 -->
<input type="hidden" name="approval_key" id="approval">
<!-- 수취인이름 -->
<input type="hidden" name="rcvr_name" value="">
<!-- 수취인 연락처 -->
<input type="hidden" name="rcvr_tel1" value="">
<!-- 수취인 휴대폰 번호 -->
<input type="hidden" name="rcvr_tel2" value="">
<!-- 수취인 E-MAIL -->
<input type="hidden" name="rcvr_add1" value="">
<!-- 수취인 우편번호 -->
<input type="hidden" name="rcvr_add2" value="">
<!-- 수취인 주소 -->
<input type="hidden" name="rcvr_mail" value="">
<!-- 수취인 상세 주소 -->
<input type="hidden" name="rcvr_zipx" value="">
<!-- 장바구니 상품 개수 -->
<input type="hidden" name="bask_cntx" value="<?php echo (int)$goods_count + 1; ?>">
<!-- 장바구니 정보(상단 스크립트 참조) -->
<input type="hidden" name="good_info" value="<?php echo $good_info; ?>">
<!-- 배송소요기간 -->
<input type="hidden" name="deli_term" value="03">
<!-- 기타 파라메터 추가 부분 - Start - -->
<input type="hidden" name="param_opt_1" value="<?php echo $param_opt_1; ?>"/>
<input type="hidden" name="param_opt_2" value="<?php echo $param_opt_2; ?>"/>
<input type="hidden" name="param_opt_3" value="<?php echo $param_opt_3; ?>"/>
<input type="hidden" name="disp_tax_yn" value="N">
<!-- 기타 파라메터 추가 부분 - End - -->
<!-- 화면 크기조정 부분 - Start - -->
<input type="hidden" name="tablet_size" value="<?php echo $tablet_size; ?>"/>
<!-- 화면 크기조정 부분 - End - -->
<!--
사용 카드 설정
<input type="hidden" name='used_card' value="CClg:ccDI">
/* 무이자 옵션
※ 설정할부 (가맹점 관리자 페이지에 설정 된 무이자 설정을 따른다) - "" 로 설정
※ 일반할부 (KCP 이벤트 이외에 설정 된 모든 무이자 설정을 무시한다) - "N" 로 설정
※ 무이자 할부 (가맹점 관리자 페이지에 설정 된 무이자 이벤트 중 원하는 무이자 설정을 세팅한다) - "Y" 로 설정
<input type="hidden" name="kcp_noint" value=""/> */
/* 무이자 설정
※ 주의 1 : 할부는 결제금액이 50,000 원 이상일 경우에만 가능
※ 주의 2 : 무이자 설정값은 무이자 옵션이 Y일 경우에만 결제 창에 적용
예) 전 카드 2,3,6개월 무이자(국민,비씨,엘지,삼성,신한,현대,롯데,외환) : ALL-02:03:04
BC 2,3,6개월, 국민 3,6개월, 삼성 6,9개월 무이자 : CCBC-02:03:06,CCKM-03:06,CCSS-03:06:04
<input type="hidden" name="kcp_noint_quota" value="CCBC-02:03:06,CCKM-03:06,CCSS-03:06:09"/> */
-->
<input type="hidden" name="kcp_noint" value="<?php echo ($default['de_card_noint_use'] ? '' : 'N'); ?>">
<?php
if($default['de_tax_flag_use']) {
/* KCP는 과세상품과 비과세상품을 동시에 판매하는 업체들의 결제관리에 대한 편의성을 제공해드리고자,
복합과세 전용 사이트코드를 지원해 드리며 총 금액에 대해 복합과세 처리가 가능하도록 제공하고 있습니다
복합과세 전용 사이트 코드로 계약하신 가맹점에만 해당이 됩니다
상품별이 아니라 금액으로 구분하여 요청하셔야 합니다
총결제 금액은 과세금액 + 부과세 + 비과세금액의 합과 같아야 합니다.
(good_mny = comm_tax_mny + comm_vat_mny + comm_free_mny)
복합과세는 order_approval_form.php 파일의 의해 적용됨
아래 필드는 order_approval_form.php 파일로 전송하는 것
*/
?>
<input type="hidden" name="tax_flag" value="TG03"> <!-- 변경불가 -->
<input type="hidden" name="comm_tax_mny" value="<?php echo $comm_tax_mny; ?>"> <!-- 과세금액 -->
<input type="hidden" name="comm_vat_mny" value="<?php echo $comm_vat_mny; ?>"> <!-- 부가세 -->
<input type="hidden" name="comm_free_mny" value="<?php echo $comm_free_mny; ?>"> <!-- 비과세 금액 -->
<?php
}
?>
</form>

View File

@ -0,0 +1,35 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<input type="hidden" name="req_tx" value=""> <!-- 요청 구분 -->
<input type="hidden" name="res_cd" value=""> <!-- 결과 코드 -->
<input type="hidden" name="tran_cd" value=""> <!-- 트랜잭션 코드 -->
<input type="hidden" name="ordr_idxx" value=""> <!-- 주문번호 -->
<input type="hidden" name="good_mny" value=""> <!-- 결제금액 -->
<input type="hidden" name="good_name" value=""> <!-- 상품명 -->
<input type="hidden" name="buyr_name" value=""> <!-- 주문자명 -->
<input type="hidden" name="buyr_tel1" value=""> <!-- 주문자 전화번호 -->
<input type="hidden" name="buyr_tel2" value=""> <!-- 주문자 휴대폰번호 -->
<input type="hidden" name="buyr_mail" value=""> <!-- 주문자 E-mail -->
<input type="hidden" name="enc_info" value=""> <!-- 암호화 정보 -->
<input type="hidden" name="enc_data" value=""> <!-- 암호화 데이터 -->
<input type="hidden" name="use_pay_method" value=""> <!-- 요청된 결제 수단 -->
<input type="hidden" name="rcvr_name" value=""> <!-- 수취인 이름 -->
<input type="hidden" name="rcvr_tel1" value=""> <!-- 수취인 전화번호 -->
<input type="hidden" name="rcvr_tel2" value=""> <!-- 수취인 휴대폰번호 -->
<input type="hidden" name="rcvr_mail" value=""> <!-- 수취인 E-Mail -->
<input type="hidden" name="rcvr_zipx" value=""> <!-- 수취인 우편번호 -->
<input type="hidden" name="rcvr_add1" value=""> <!-- 수취인 주소 -->
<input type="hidden" name="rcvr_add2" value=""> <!-- 수취인 상세 주소 -->
<input type="hidden" name="param_opt_1" value="">
<input type="hidden" name="param_opt_2" value="">
<input type="hidden" name="param_opt_3" value="">
<input type="hidden" name="disp_tax_yn" value="N">
<input type="hidden" name="nhnkcp_pay_case" value="">
<?php if($default['de_tax_flag_use']) { ?>
<input type="hidden" name="tax_flag" value="TG03"> <!-- 변경불가 -->
<input type="hidden" name="comm_tax_mny" value="<?php echo $comm_tax_mny; ?>"> <!-- 과세금액 -->
<input type="hidden" name="comm_vat_mny" value="<?php echo $comm_vat_mny; ?>"> <!-- 부가세 -->
<input type="hidden" name="comm_free_mny" value="<?php echo $comm_free_mny; ?>"> <!-- 비과세 금액 -->
<?php } ?>

View File

@ -0,0 +1,10 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 타 PG 사용시 NHN KCP 네이버페이 사용이 설정되어 있는지 체크, 그렇지 않다면 return;
if( !(function_exists('is_use_easypay') && is_use_easypay('global_nhnkcp')) ){
return;
}
include_once(G5_MSHOP_PATH.'/settle_kcp.inc.php');
?>

View File

@ -0,0 +1,83 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 타 PG 사용시 NHN KCP 네이버페이 사용이 설정되어 있는지 체크, 그렇지 않다면 return;
if( !(function_exists('is_use_easypay') && is_use_easypay('global_nhnkcp')) ){
return;
}
?>
<script>
jQuery(function($){
$( document ).ready(function() {
var pf = document.forderform;
// NHN_KCP를 통한 네이버페이가 실행됨
$(pf).on("form_sumbit_order_nhnkcp_naverpay", nhnkcp_naverpay_form_submit);
function nhnkcp_naverpay_form_submit(){
var $form = $(this),
pf = $form[0],
nhnkcp_pay_form = document.nhnkcp_pay_form,
nhnkcp_settle_case = jQuery("input[name='od_settle_case']:checked").attr("data-pay"),
od_settle_case = jQuery("input[name='od_settle_case']:checked").val();
if( nhnkcp_settle_case == "naverpay" ){
if(typeof nhnkcp_pay_form.naverpay_direct !== "undefined") nhnkcp_pay_form.naverpay_direct.value = "Y";
}
if( ! jQuery("form[name='sm_form']").length ){
alert("해당 폼이 존재 하지 않는 결제오류입니다.");
return false;
}
if (document.sm_form.good_mny.value < 1000) {
<?php // 간편결제수단은 신용카드처럼 취급하며 금액은 1000원 이상이므로, 1000원 이상이 아니면 PG사에서 승인하지 않는다. ?>
alert("간편결제는 1000원 이상 결제가 가능합니다.");
return false;
}
nhnkcp_pay_form.good_mny.value = document.sm_form.good_mny.value;
nhnkcp_pay_form.good_info.value = "<?php echo $good_info; ?>";
nhnkcp_pay_form.settle_method.value = od_settle_case;
nhnkcp_pay_form.nhnkcp_pay_case.value = nhnkcp_settle_case;
if(typeof pf.nhnkcp_pay_case !== "undefined") pf.nhnkcp_pay_case.value = nhnkcp_settle_case;
nhnkcp_pay_form.buyr_name.value = pf.od_name.value;
nhnkcp_pay_form.buyr_mail.value = pf.od_email.value;
nhnkcp_pay_form.buyr_tel1.value = pf.od_tel.value;
nhnkcp_pay_form.buyr_tel2.value = pf.od_hp.value;
nhnkcp_pay_form.rcvr_name.value = pf.od_b_name.value;
nhnkcp_pay_form.rcvr_tel1.value = pf.od_b_tel.value;
nhnkcp_pay_form.rcvr_tel2.value = pf.od_b_hp.value;
nhnkcp_pay_form.rcvr_mail.value = pf.od_email.value;
nhnkcp_pay_form.rcvr_zipx.value = pf.od_b_zip.value;
nhnkcp_pay_form.rcvr_add1.value = pf.od_b_addr1.value;
nhnkcp_pay_form.rcvr_add2.value = pf.od_b_addr2.value;
// 주문 정보 임시저장
var order_data = $(pf).serialize();
var save_result = "";
$.ajax({
type: "POST",
data: order_data,
url: g5_url+"/shop/ajax.orderdatasave.php",
cache: false,
async: false,
success: function(data) {
save_result = data;
}
});
if(save_result) {
alert(save_result);
return false;
}
nhnkcp_pay_form.submit();
return false;
}
});
});
</script>

View File

@ -1,5 +1,10 @@
<?php
include_once('./_common.php');
@header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
@header('Pragma: no-cache'); // HTTP 1.0.
@header('Expires: 0'); // Proxies.
/* ============================================================================== */
/* = PAGE : 결제 요청 PAGE = */
/* = -------------------------------------------------------------------------- = */
@ -63,6 +68,8 @@
$comm_free_mny = $_POST["comm_free_mny" ]; // 비과세금액
$payco_direct = $_POST["payco_direct" ]; // PAYCO 결제창 호출
$naverpay_direct = $_POST["naverpay_direct"]; // NAVERPAY 결제창 호출
$kakaopay_direct = $_POST["kakaopay_direct"]; // KAKAOPAY 결제창 호출
/*
* 기타 파라메터 추가 부분 - Start -
@ -82,6 +89,9 @@
$rcvr_add1 = iconv('euc-kr', 'utf-8', $rcvr_add1);
$rcvr_add2 = iconv('euc-kr', 'utf-8', $rcvr_add2);
}
// 에스크로 변수 ( 간편결제의 경우 N 으로 변경 )
$escw_used = 'Y';
switch($settle_method)
{
@ -104,6 +114,7 @@
case '간편결제':
$pay_method = 'CARD';
$ActionResult = 'card';
$escw_used = 'N';
break;
default:
$pay_method = '';
@ -155,8 +166,11 @@
layer_cont_obj.style.display = "none";
layer_receipt_obj.style.display = "block";
v_frm.target = "frm_receipt";
// 네이버페이면 반드시 페이지전환 방식이어야 하며, 그 외에는 iframe 방식으로 한다.
if(!(typeof v_frm.naverpay_direct !== "undefined" && v_frm.naverpay_direct.value === 1)) { // 네이버페이가 아니면
v_frm.target = "frm_receipt";
}
v_frm.action = PayUrl;
if(v_frm.Ret_URL.value == "")
@ -252,7 +266,15 @@ if($enc_data != '' && $enc_info != '' && $tran_cd != '') {
//echo '<input type="hidden" name="ipgm_date" value="'.$ipgm_date.'">';
?>
<?php if($payco_direct){ ?>
<input type="hidden" name="payco_direct" value="<?php echo $payco_direct; ?>"> <!-- PAYCO 결제창 호출 -->
<?php } ?>
<?php if($naverpay_direct){ ?>
<input type="hidden" name="naverpay_direct" value="<?php echo $naverpay_direct; ?>"> <!-- 네이버페이 결제창 호출 -->
<?php } ?>
<?php if($kakaopay_direct){ ?>
<input type="hidden" name="kakaopay_direct" value="<?php echo $kakaopay_direct; ?>"> <!-- 카카오페이 결제창 호출 -->
<?php } ?>
<!-- 필수 사항 -->
@ -278,7 +300,7 @@ if($enc_data != '' && $enc_info != '' && $tran_cd != '') {
<!-- 인증시 필요한 파라미터(변경불가)-->
<input type="hidden" name="ActionResult" value="<?php echo $ActionResult; ?>">
<!-- 에스크로 사용유무 에스크로 사용 업체(가상계좌만 해당)는 Y로 세팅 해주시기 바랍니다.-->
<input type="hidden" name="escw_used" value="Y">
<input type="hidden" name="escw_used" value="<?php echo $escw_used; ?>">
<!-- 에스크로 결제처리모드 -->
<input type="hidden" name="pay_mod" value="<?php echo ($default['de_escrow_use']?'O':'N'); ?>">
<!-- 수취인이름 -->

View File

@ -18,8 +18,12 @@ if(!($default['de_iche_use'] || $default['de_vbank_use'] || $default['de_hp_use'
<input type="hidden" name="buyr_mail" value="">
<input type="hidden" name="settle_method" value="">
<input type="hidden" name="payco_direct" value=""> <!-- PAYCO 결제창 호출 -->
<input type="hidden" name="naverpay_direct" value="A" > <!-- NAVERPAY 결제창 호출 -->
<input type="hidden" name="kakaopay_direct" value="A" > <!-- KAKAOPAY 결제창 호출 -->
<!-- 주문번호 -->
<input type="hidden" name="ordr_idxx" value="<?php echo $od_id; ?>">
<!-- 인증수단(영문 소문자) * 반드시 대소문자 구분 -->
<input type="hidden" name="ActionResult" value="">
<!-- 결제등록 키 -->
<input type="hidden" name="approval_key" id="approval">
<!-- 수취인이름 -->

View File

@ -201,6 +201,16 @@
$app_no = $c_PayPlus->mf_get_res_data( "app_no" ); // 승인 번호
$noinf = $c_PayPlus->mf_get_res_data( "noinf" ); // 무이자 여부 ( 'Y' : 무이자 )
$quota = $c_PayPlus->mf_get_res_data( "quota" ); // 할부 개월 수
$od_other_pay_type = $c_PayPlus->mf_get_res_data( "card_other_pay_type" ); // 간편결제유형
$kcp_pay_method = $c_PayPlus->mf_get_res_data( "pay_method" ); // 카카오페이 결제수단
// 카드 코드는 PACA, 카카오머니 코드는 PAKM
if( $kcp_pay_method == "PAKM" ){ // 카카오머니
$card_mny = $kakaomny_mny = $c_PayPlus->mf_get_res_data( "kakaomny_mny" );
$app_time = $app_kakaomny_time = $c_PayPlus->mf_get_res_data( "app_kakaomny_time" );
$od_other_pay_type = 'NHNKCP_KAKAOMONEY';
}
}
/* = -------------------------------------------------------------------------- = */

View File

@ -8,6 +8,10 @@ if( is_inicis_simple_pay() ){ //이니시스 삼성페이 또는 Lpay 사용
require_once(G5_MSHOP_PATH.'/samsungpay/incSamsungpayCommon.php');
}
if(function_exists('is_use_easypay') && is_use_easypay('global_nhnkcp')){ // 타 PG 사용시 NHN KCP 네이버페이 사용이 설정되어 있다면
require_once(G5_MSHOP_PATH.'/kcp/global_m_nhn_kcp.php');
}
$tablet_size = "1.0"; // 화면 사이즈 조정 - 기기화면에 맞게 수정(갤럭시탭,아이패드 - 1.85, 스마트폰 - 1.0)
// 개인결제번호제거
@ -252,6 +256,10 @@ require_once(G5_MSHOP_PATH.'/'.$default['de_pg_service'].'/orderform.1.php');
if( is_inicis_simple_pay() ){ //이니시스 삼성페이 또는 lpay 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/orderform.1.php');
}
if(function_exists('is_use_easypay') && is_use_easypay('global_nhnkcp')){ // 타 PG 사용시 NHN KCP 네이버페이 사용이 설정되어 있다면
require_once(G5_MSHOP_PATH.'/kcp/easypay_form.1.php');
}
?>
</div>
@ -586,6 +594,8 @@ if($is_kakaopay_use) {
echo '<li><input type="radio" id="od_settle_card" name="od_settle_case" value="신용카드" '.$checked.'> <label for="od_settle_card" class="lb_icon card_icon">신용카드</label></li>'.PHP_EOL;
$checked = '';
}
$easypay_prints = array();
// PG 간편결제
if($default['de_easy_pay_use']) {
@ -602,8 +612,30 @@ if($is_kakaopay_use) {
}
$multi_settle++;
echo '<li><input type="radio" id="od_settle_easy_pay" name="od_settle_case" value="간편결제" '.$checked.'> <label for="od_settle_easy_pay" class="'.$pg_easy_pay_name.' lb_icon">'.$pg_easy_pay_name.'</label></li>'.PHP_EOL;
$checked = '';
if($default['de_pg_service'] === 'kcp' && isset($default['de_easy_pay_services']) && $default['de_easy_pay_services']){
$de_easy_pay_service_array = explode(',', $default['de_easy_pay_services']);
if( in_array('nhnkcp_payco', $de_easy_pay_service_array) ){
$easypay_prints['nhnkcp_payco'] = '<li><input type="radio" id="od_settle_nhnkcp_payco" name="od_settle_case" data-pay="payco" value="간편결제"> <label for="od_settle_nhnkcp_payco" class="PAYCO nhnkcp_payco lb_icon" title="NHN_KCP - PAYCO">PAYCO</label></li>';
}
if( in_array('nhnkcp_naverpay', $de_easy_pay_service_array) ){
$easypay_prints['nhnkcp_naverpay'] = '<li><input type="radio" id="od_settle_nhnkcp_naverpay" name="od_settle_case" data-pay="naverpay" value="간편결제" > <label for="od_settle_nhnkcp_naverpay" class="naverpay_icon nhnkcp_naverpay lb_icon" title="NHN_KCP - 네이버페이">네이버페이</label></li>';
}
if( in_array('nhnkcp_kakaopay', $de_easy_pay_service_array) ){
$easypay_prints['nhnkcp_kakaopay'] = '<li><input type="radio" id="od_settle_nhnkcp_kakaopay" name="od_settle_case" data-pay="kakaopay" value="간편결제" > <label for="od_settle_nhnkcp_kakaopay" class="kakaopay_icon nhnkcp_kakaopay lb_icon" title="NHN_KCP - 카카오페이">카카오페이</label></li>';
}
} else {
$easypay_prints[strtolower($pg_easy_pay_name)] = '<li><input type="radio" id="od_settle_easy_pay" name="od_settle_case" value="간편결제" '.$checked.'> <label for="od_settle_easy_pay" class="'.$pg_easy_pay_name.' lb_icon">'.$pg_easy_pay_name.'</label></li>';
}
}
if( ! isset($easypay_prints['nhnkcp_naverpay']) && function_exists('is_use_easypay') && is_use_easypay('global_nhnkcp') ){
$easypay_prints['nhnkcp_naverpay'] = '<li><input type="radio" id="od_settle_nhnkcp_naverpay" name="od_settle_case" data-pay="naverpay" value="간편결제" > <label for="od_settle_nhnkcp_naverpay" class="naverpay_icon nhnkcp_naverpay lb_icon" title="NHN_KCP - 네이버페이">네이버페이</label></li>';
}
if($easypay_prints) {
$multi_settle++;
echo run_replace('shop_orderform_easypay_buttons', implode(PHP_EOL, $easypay_prints), $easypay_prints, $multi_settle);
}
//이니시스 삼성페이
@ -696,6 +728,10 @@ if($is_kakaopay_use) {
require_once(G5_MSHOP_PATH.'/samsungpay/orderform.2.php');
}
if(function_exists('is_use_easypay') && is_use_easypay('global_nhnkcp')){ // 타 PG 사용시 NHN KCP 네이버페이 사용이 설정되어 있다면
require_once(G5_MSHOP_PATH.'/kcp/easypay_form.2.php');
}
if($is_kakaopay_use) {
require_once(G5_SHOP_PATH.'/kakaopay/orderform.2.php');
}
@ -730,6 +766,10 @@ if($is_kakaopay_use) {
if( is_inicis_simple_pay() ){ //삼성페이 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/order.script.php');
}
if(function_exists('is_use_easypay') && is_use_easypay('global_nhnkcp')){ // 타 PG 사용시 NHN KCP 네이버페이 사용이 설정되어 있다면
require_once(G5_MSHOP_PATH.'/kcp/m_order.script.php');
}
?>
<script>
var zipcode = "";
@ -1160,7 +1200,7 @@ function calculate_tax()
});
if($("input[name=od_temp_point]").size())
temp_point = parseInt($("input[name=od_temp_point]").val());
temp_point = parseInt($("input[name=od_temp_point]").val()) || 0;
tot_mny += (send_cost + send_cost2 - od_coupon - send_coupon - temp_point);
if(tot_mny < 0) {
@ -1223,6 +1263,10 @@ function pay_approval()
if( settle_method == "삼성페이" || settle_method == "lpay" || settle_method == "inicis_kakaopay" ){
form_order_method = 'samsungpay';
} else if(settle_method == "간편결제") {
if(jQuery("input[name='od_settle_case']:checked" ).attr("data-pay") === "naverpay"){
form_order_method = 'nhnkcp_naverpay';
}
}
if( jQuery(pf).triggerHandler("form_sumbit_order_"+form_order_method) !== false ) {
@ -1239,10 +1283,31 @@ function pay_approval()
f.rcvr_add1.value = pf.od_b_addr1.value;
f.rcvr_add2.value = pf.od_b_addr2.value;
f.settle_method.value = settle_method;
if(settle_method == "간편결제")
f.payco_direct.value = "Y";
else
f.payco_direct.value = "";
if(typeof f.payco_direct !== "undefined") f.payco_direct.value = "";
if(typeof f.naverpay_direct !== "undefined") f.naverpay_direct.value = "A";
if(typeof f.kakaopay_direct !== "undefined") f.kakaopay_direct.value = "A";
if(typeof f.ActionResult !== "undefined") f.ActionResult.value = "";
if(typeof f.pay_method !== "undefined") f.pay_method.value = "";
if(settle_method == "간편결제"){
var nhnkcp_easy_pay = jQuery("input[name='od_settle_case']:checked" ).attr("data-pay");
if(nhnkcp_easy_pay === "naverpay"){
if(typeof f.naverpay_direct !== "undefined"){
f.naverpay_direct.value = "Y";
}
} else if(nhnkcp_easy_pay === "kakaopay"){
if(typeof f.kakaopay_direct !== "undefined") f.kakaopay_direct.value = "Y";
} else {
if(typeof f.payco_direct !== "undefined") f.payco_direct.value = "Y";
}
if(typeof f.ActionResult !== "undefined") f.ActionResult.value = "CARD"; // 대소문자 구분
if(typeof f.pay_method !== "undefined") f.pay_method.value = "card"; // 대소문자 구분
}
<?php } else if($default['de_pg_service'] == 'lg') { ?>
var pay_method = "";
var easy_pay = "";
@ -1472,7 +1537,7 @@ function payment_check(f)
if (f.od_temp_point.value)
{
var point_unit = parseInt(<?php echo $default['de_settle_point_unit']; ?>);
temp_point = parseInt(f.od_temp_point.value);
temp_point = parseInt(f.od_temp_point.value) || 0;
if (temp_point < 0) {
alert("포인트를 0 이상 입력하세요.");

View File

@ -7,6 +7,11 @@ if( is_inicis_order_pay($od_settle_case) && !empty($_POST['P_HASH']) ){
$default['de_pg_service'] = 'inicis';
}
// 타 PG 사용시 NHN KCP 네이버페이로 결제 요청이 왔다면 $default['de_pg_service'] 값을 kcp 로 변경합니다.
if(function_exists('is_use_easypay') && is_use_easypay('global_nhnkcp') && isset($_POST['enc_data']) && $_POST['enc_data'] && isset($_POST['site_cd']) && isset($_POST['nhnkcp_pay_case']) && $_POST['nhnkcp_pay_case'] === "naverpay"){
$default['de_pg_service'] = 'kcp';
}
if( $default['de_pg_service'] == 'inicis' && get_session('ss_order_id') ){
if( $exist_order = get_shop_order_data(get_session('ss_order_id')) ){ //이미 상품이 주문되었다면 리다이렉트
if($exist_order['od_tno']){
@ -45,6 +50,18 @@ if (get_cart_count($tmp_cart_id) == 0) { // 장바구니에 담기
alert('장바구니가 비어 있습니다.\\n\\n이미 주문하셨거나 장바구니에 담긴 상품이 없는 경우입니다.', G5_SHOP_URL.'/cart.php');
}
$sql = "select * from {$g5['g5_shop_order_table']} limit 1";
$check_tmp = sql_fetch($sql);
if(!isset($check_tmp['od_other_pay_type'])){
$sql = "ALTER TABLE `{$g5['g5_shop_order_table']}`
ADD COLUMN `od_other_pay_type` VARCHAR(100) NOT NULL DEFAULT '' AFTER `od_settle_case`; ";
sql_query($sql, false);
}
// 변수 초기화
$od_other_pay_type = '';
$error = "";
// 장바구니 상품 재고 검사
$sql = " select it_id,
@ -616,6 +633,7 @@ $sql = " insert {$g5['g5_shop_order_table']}
od_mobile = '1',
od_ip = '$REMOTE_ADDR',
od_settle_case = '$od_settle_case',
od_other_pay_type = '$od_other_pay_type',
od_test = '{$default['de_card_test']}'
";
$result = sql_query($sql, false);

View File

@ -237,7 +237,6 @@ if($od['od_pg'] == 'lg') {
$app_no_subj = '';
$disp_bank = true;
$disp_receipt = false;
$easy_pay_name = '';
if($od['od_settle_case'] == '신용카드' || $od['od_settle_case'] == 'KAKAOPAY' || is_inicis_order_pay($od['od_settle_case']) ) {
$app_no_subj = '승인번호';
$app_no = $od['od_app_no'];
@ -247,19 +246,6 @@ if($od['od_pg'] == 'lg') {
$app_no_subj = '승인번호';
$app_no = $od['od_app_no'];
$disp_bank = false;
switch($od['od_pg']) {
case 'lg':
$easy_pay_name = 'PAYNOW';
break;
case 'inicis':
$easy_pay_name = 'KPAY';
break;
case 'kcp':
$easy_pay_name = 'PAYCO';
break;
default:
break;
}
} else if($od['od_settle_case'] == '휴대폰') {
$app_no_subj = '휴대폰번호';
$app_no = $od['od_bank_account'];
@ -291,7 +277,7 @@ if($od['od_pg'] == 'lg') {
</tr>
<tr>
<th scope="row">결제방식</th>
<td><?php echo ($easy_pay_name ? $easy_pay_name.'('.$od['od_settle_case'].')' : check_pay_name_replace($od['od_settle_case'])); ?></td>
<td><?php echo check_pay_name_replace($od['od_settle_case'], $od, 1); ?></td>
</tr>
<tr>
<th scope="row">결제금액</th>
@ -309,7 +295,7 @@ if($od['od_pg'] == 'lg') {
}
// 승인번호, 휴대폰번호, 거래번호
if($app_no_subj)
if($app_no_subj && $app_no)
{
?>
<tr>

View File

@ -47,7 +47,7 @@ $g_conf_site_cd = $default['de_kcp_mid'];
$g_conf_site_key = $default['de_kcp_site_key'];
// 테스트 결제 때 PAYCO site_cd, site_key 재설정
if($default['de_card_test'] && ($_POST['settle_method'] == '간편결제' || $_POST['od_settle_case'] == '간편결제')) {
if($default['de_card_test'] && (($_POST['settle_method'] == '간편결제' || $_POST['od_settle_case'] == '간편결제') && (isset($_POST['payco_direct']) && $_POST['payco_direct'] === 'Y') )) {
$g_conf_site_cd = 'S6729';
$g_conf_site_key = '';
}