모바일 삼성페이를 다른 PG서비스와 함께 쓸수 있도록 처리

This commit is contained in:
thisgun
2016-12-12 13:33:44 +09:00
parent d855668afd
commit 6589e225a1
12 changed files with 376 additions and 153 deletions

View File

@ -1,8 +1,8 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 무통장 입금만 사용할 때는 아래 코드 실행되지 않음
if(!($default['de_iche_use'] || $default['de_vbank_use'] || $default['de_hp_use'] || $default['de_card_use']))
// 무통장 입금만 사용할 때는 아래 코드 실행되지 않음 ( 카카오페이 또는 삼성페이도 사용 안하면 )
if(!($default['de_iche_use'] || $default['de_vbank_use'] || $default['de_hp_use'] || $default['de_card_use'] || $default['de_samsung_pay_use'] || $is_kakaopay_use ))
return;
?>

View File

@ -4,6 +4,10 @@ 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( $default['de_samsung_pay_use'] ){ //삼성페이 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/incSamsungpayCommon.php');
}
// 결제등록 요청시 사용할 입금마감일
$ipgm_date = date("Ymd", (G5_SERVER_TIME + 86400 * 5));
$tablet_size = "1.0"; // 화면 사이즈 조정 - 기기화면에 맞게 수정(갤럭시탭,아이패드 - 1.85, 스마트폰 - 1.0)
@ -240,6 +244,10 @@ ob_end_clean();
// 결제대행사별 코드 include (결제등록 필드)
require_once(G5_MSHOP_PATH.'/'.$default['de_pg_service'].'/orderform.1.php');
if( $default['de_samsung_pay_use'] ){ //삼성페이 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/orderform.1.php');
}
?>
</div>
@ -535,7 +543,7 @@ if($is_kakaopay_use) {
$escrow_title = "에스크로 ";
}
if ($is_kakaopay_use || $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'] || ('inicis' == $default['de_pg_service'] && $default['de_samsung_pay_use'])) {
if ($is_kakaopay_use || $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'] || $default['de_samsung_pay_use']) {
echo '<div id="sod_frm_paysel"><ul>';
}
@ -601,8 +609,8 @@ if($is_kakaopay_use) {
}
//이니시스 삼성페이
if('inicis' == $default['de_pg_service'] && $default['de_samsung_pay_use']) {
echo '<li><input type="radio" id="od_settle_samsung_pay" name="od_settle_case" value="삼성페이" '.$checked.'> <label for="od_settle_samsung_pay" class="samsung_pay">삼성페이</label></li>'.PHP_EOL;
if($default['de_samsung_pay_use']) {
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">삼성페이</label></li>'.PHP_EOL;
$checked = '';
}
@ -659,7 +667,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'] || ('inicis' == $default['de_pg_service'] && $default['de_samsung_pay_use'])) {
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'] || $default['de_samsung_pay_use']) {
echo '</div>';
}
@ -672,6 +680,10 @@ if($is_kakaopay_use) {
// 결제대행사별 코드 include (결제대행사 정보 필드 및 주분버튼)
require_once(G5_MSHOP_PATH.'/'.$default['de_pg_service'].'/orderform.2.php');
if( $default['de_samsung_pay_use'] ){ //삼성페이 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/orderform.2.php');
}
if($is_kakaopay_use) {
require_once(G5_SHOP_PATH.'/kakaopay/orderform.2.php');
}
@ -693,11 +705,20 @@ if($is_kakaopay_use) {
if ($default['de_escrow_use']) {
// 결제대행사별 코드 include (에스크로 안내)
require_once(G5_MSHOP_PATH.'/'.$default['de_pg_service'].'/orderform.3.php');
if( $default['de_samsung_pay_use'] ){ //삼성페이 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/orderform.3.php');
}
}
?>
</div>
<?php
if( $default['de_samsung_pay_use'] ){ //삼성페이 사용시
require_once(G5_MSHOP_PATH.'/samsungpay/order.script.php');
}
?>
<script>
var zipcode = "";
@ -940,7 +961,7 @@ $(function() {
$("#show_pay_btn").css("display", "inline");
});
$("#od_settle_iche,#od_settle_card,#od_settle_vbank,#od_settle_hp,#od_settle_easy_pay,#od_settle_kakaopay").bind("click", function() {
$("#od_settle_iche,#od_settle_card,#od_settle_vbank,#od_settle_hp,#od_settle_easy_pay,#od_settle_kakaopay,#od_settle_samsungpay").bind("click", function() {
$("#settle_bank").hide();
$("#show_req_btn").css("display", "inline");
$("#show_pay_btn").css("display", "none");
@ -1186,118 +1207,129 @@ function pay_approval()
return false;
}
<?php if($default['de_pg_service'] == 'kcp') { ?>
f.buyr_name.value = pf.od_name.value;
f.buyr_mail.value = pf.od_email.value;
f.buyr_tel1.value = pf.od_tel.value;
f.buyr_tel2.value = pf.od_hp.value;
f.rcvr_name.value = pf.od_b_name.value;
f.rcvr_tel1.value = pf.od_b_tel.value;
f.rcvr_tel2.value = pf.od_b_hp.value;
f.rcvr_mail.value = pf.od_email.value;
f.rcvr_zipx.value = pf.od_b_zip.value;
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 = "";
<?php } else if($default['de_pg_service'] == 'lg') { ?>
var pay_method = "";
var easy_pay = "";
switch(settle_method) {
case "계좌이체":
pay_method = "SC0030";
break;
case "가상계좌":
pay_method = "SC0040";
break;
case "휴대폰":
pay_method = "SC0060";
break;
case "신용카드":
pay_method = "SC0010";
break;
case "간편결제":
easy_pay = "PAYNOW";
break;
}
f.LGD_CUSTOM_FIRSTPAY.value = pay_method;
f.LGD_BUYER.value = pf.od_name.value;
f.LGD_BUYEREMAIL.value = pf.od_email.value;
f.LGD_BUYERPHONE.value = pf.od_hp.value;
f.LGD_AMOUNT.value = f.good_mny.value;
f.LGD_EASYPAY_ONLY.value = easy_pay;
<?php if($default['de_tax_flag_use']) { ?>
f.LGD_TAXFREEAMOUNT.value = pf.comm_free_mny.value;
<?php } ?>
<?php } else if($default['de_pg_service'] == 'inicis') { ?>
var paymethod = "";
var width = 330;
var height = 480;
var xpos = (screen.width - width) / 2;
var ypos = (screen.width - height) / 2;
var position = "top=" + ypos + ",left=" + xpos;
var features = position + ", width=320, height=440";
var p_reserved = f.DEF_RESERVED.value;
f.P_RESERVED.value = p_reserved;
switch(settle_method) {
case "계좌이체":
paymethod = "bank";
break;
case "가상계좌":
paymethod = "vbank";
break;
case "휴대폰":
paymethod = "mobile";
break;
case "신용카드":
paymethod = "wcard";
f.P_RESERVED.value = f.P_RESERVED.value.replace("&useescrow=Y", "");
break;
case "간편결제":
paymethod = "wcard";
f.P_RESERVED.value = p_reserved+"&d_kpay=Y&d_kpay_app=Y";
break;
case "삼성페이":
paymethod = "wcard";
f.P_RESERVED.value = p_reserved+"&d_samsungpay=Y";
f.P_SKIP_TERMS.value = "Y"; //약관을 skip 해야 제대로 실행됨
break;
}
f.P_AMT.value = f.good_mny.value;
f.P_UNAME.value = pf.od_name.value;
f.P_MOBILE.value = pf.od_hp.value;
f.P_EMAIL.value = pf.od_email.value;
<?php if($default['de_tax_flag_use']) { ?>
f.P_TAX.value = pf.comm_vat_mny.value;
f.P_TAXFREE = pf.comm_free_mny.value;
<?php } ?>
f.P_RETURN_URL.value = "<?php echo $return_url.$od_id; ?>";
f.action = "https://mobile.inicis.com/smart/" + paymethod + "/";
<?php } ?>
var form_order_method = '';
// 주문 정보 임시저장
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( settle_method == "삼성페이" ){
form_order_method = 'samsungpay';
}
if( jQuery(pf).triggerHandler("form_sumbit_order_"+form_order_method) !== false ) {
<?php if($default['de_pg_service'] == 'kcp') { ?>
f.buyr_name.value = pf.od_name.value;
f.buyr_mail.value = pf.od_email.value;
f.buyr_tel1.value = pf.od_tel.value;
f.buyr_tel2.value = pf.od_hp.value;
f.rcvr_name.value = pf.od_b_name.value;
f.rcvr_tel1.value = pf.od_b_tel.value;
f.rcvr_tel2.value = pf.od_b_hp.value;
f.rcvr_mail.value = pf.od_email.value;
f.rcvr_zipx.value = pf.od_b_zip.value;
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 = "";
<?php } else if($default['de_pg_service'] == 'lg') { ?>
var pay_method = "";
var easy_pay = "";
switch(settle_method) {
case "계좌이체":
pay_method = "SC0030";
break;
case "가상계좌":
pay_method = "SC0040";
break;
case "휴대폰":
pay_method = "SC0060";
break;
case "신용카드":
pay_method = "SC0010";
break;
case "간편결제":
easy_pay = "PAYNOW";
break;
}
});
f.LGD_CUSTOM_FIRSTPAY.value = pay_method;
f.LGD_BUYER.value = pf.od_name.value;
f.LGD_BUYEREMAIL.value = pf.od_email.value;
f.LGD_BUYERPHONE.value = pf.od_hp.value;
f.LGD_AMOUNT.value = f.good_mny.value;
f.LGD_EASYPAY_ONLY.value = easy_pay;
<?php if($default['de_tax_flag_use']) { ?>
f.LGD_TAXFREEAMOUNT.value = pf.comm_free_mny.value;
<?php } ?>
<?php } else if($default['de_pg_service'] == 'inicis') { ?>
var paymethod = "";
var width = 330;
var height = 480;
var xpos = (screen.width - width) / 2;
var ypos = (screen.width - height) / 2;
var position = "top=" + ypos + ",left=" + xpos;
var features = position + ", width=320, height=440";
var p_reserved = f.DEF_RESERVED.value;
f.P_RESERVED.value = p_reserved;
switch(settle_method) {
case "계좌이체":
paymethod = "bank";
break;
case "가상계좌":
paymethod = "vbank";
break;
case "휴대폰":
paymethod = "mobile";
break;
case "신용카드":
paymethod = "wcard";
f.P_RESERVED.value = f.P_RESERVED.value.replace("&useescrow=Y", "");
break;
case "간편결제":
paymethod = "wcard";
f.P_RESERVED.value = p_reserved+"&d_kpay=Y&d_kpay_app=Y";
break;
case "삼성페이":
paymethod = "wcard";
f.P_RESERVED.value = f.P_RESERVED.value.replace("&useescrow=Y", "")+"&d_samsungpay=Y";
//f.DEF_RESERVED.value = f.DEF_RESERVED.value.replace("&useescrow=Y", "");
f.P_SKIP_TERMS.value = "Y"; //약관을 skip 해야 제대로 실행됨
break;
}
f.P_AMT.value = f.good_mny.value;
f.P_UNAME.value = pf.od_name.value;
f.P_MOBILE.value = pf.od_hp.value;
f.P_EMAIL.value = pf.od_email.value;
<?php if($default['de_tax_flag_use']) { ?>
f.P_TAX.value = pf.comm_vat_mny.value;
f.P_TAXFREE = pf.comm_free_mny.value;
<?php } ?>
f.P_RETURN_URL.value = "<?php echo $return_url.$od_id; ?>";
f.action = "https://mobile.inicis.com/smart/" + paymethod + "/";
<?php } ?>
if(save_result) {
alert(save_result);
return false;
// 주문 정보 임시저장
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;
}
f.submit();
}
f.submit();
return false;
}
function forderform_check()

View File

@ -2,7 +2,10 @@
include_once('./_common.php');
include_once(G5_LIB_PATH.'/mailer.lib.php');
//print_r2($_POST); exit;
//삼성페이 요청으로 왔다면 현재 삼성페이는 이니시스 밖에 없으므로 $default['de_pg_service'] 값을 이니시스로 변경한다.
if( $od_settle_case == '삼성페이' && !empty($_POST['P_HASH']) ){
$default['de_pg_service'] = 'inicis';
}
$page_return_url = G5_SHOP_URL.'/orderform.php';
if(get_session('ss_direct'))

View File

@ -0,0 +1,3 @@
<?php
include_once('../../common.php');
?>

View File

@ -0,0 +1,10 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//삼성페이 사용시에만 해당함
if( ! $default['de_samsung_pay_use'] || ('inicis' == $default['de_pg_service']) ){ //PG가 이니시스인 경우 아래 내용 사용 안함
return;
}
include_once(G5_MSHOP_PATH.'/settle_inicis.inc.php');
?>

View File

@ -0,0 +1,72 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
//삼성페이 사용시에만 해당함
if( ! $default['de_samsung_pay_use'] || ('inicis' == $default['de_pg_service']) ){ //PG가 이니시스인 경우 아래 내용 사용 안함
return;
}
?>
<script>
jQuery(function($){
$( document ).ready(function() {
var pf = document.forderform;
$(pf).on("form_sumbit_order_samsungpay", samsungpay_form_submit);
function samsungpay_form_submit(){
var $form = $(this),
pf = $form[0],
samsungpayform = document.samsungpay_form;
var paymethod = "";
var width = 330;
var height = 480;
var xpos = (screen.width - width) / 2;
var ypos = (screen.width - height) / 2;
var position = "top=" + ypos + ",left=" + xpos;
var features = position + ", width=320, height=440";
var p_reserved = samsungpayform.DEF_RESERVED.value;
samsungpayform.P_RESERVED.value = p_reserved;
paymethod = "wcard";
samsungpayform.P_RESERVED.value = samsungpayform.P_RESERVED.value.replace("&useescrow=Y", "")+"&d_samsungpay=Y";
samsungpayform.P_AMT.value = samsungpayform.good_mny.value;
samsungpayform.P_UNAME.value = pf.od_name.value;
samsungpayform.P_MOBILE.value = pf.od_hp.value;
samsungpayform.P_EMAIL.value = pf.od_email.value;
<?php if($default['de_tax_flag_use']) { ?>
samsungpayform.P_TAX.value = pf.comm_vat_mny.value;
samsungpayform.P_TAXFREE = pf.comm_free_mny.value;
<?php } ?>
samsungpayform.P_RETURN_URL.value = "<?php echo $return_url.$od_id; ?>";
samsungpayform.action = "https://mobile.inicis.com/smart/" + paymethod + "/";
// 주문 정보 임시저장
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;
}
samsungpayform.submit();
return false;
}
});
});
</script>

View File

@ -0,0 +1,34 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//삼성페이 사용시에만 해당함
if( ! $default['de_samsung_pay_use'] || ('inicis' == $default['de_pg_service']) ){ //PG가 이니시스인 경우 아래 내용 사용 안함
return;
}
?>
<form name="samsungpay_form" id="samsungpay_form" method="POST" action="" accept-charset="euc-kr">
<input type="hidden" name="P_OID" value="<?php echo $od_id; ?>">
<input type="hidden" name="P_GOODS" value="<?php echo $goods; ?>">
<input type="hidden" name="P_AMT" value="<?php echo $tot_price; ?>">
<input type="hidden" name="P_UNAME" value="">
<input type="hidden" name="P_MOBILE" value="">
<input type="hidden" name="P_EMAIL" value="">
<input type="hidden" name="P_MID" value="<?php echo $default['de_inicis_mid']; ?>">
<input type="hidden" name="P_NEXT_URL" value="<?php echo $next_url; ?>">
<input type="hidden" name="P_NOTI_URL" value="<?php echo $noti_url; ?>">
<input type="hidden" name="P_RETURN_URL" value="">
<input type="hidden" name="P_HPP_METHOD" value="2">
<input type="hidden" name="P_RESERVED" value="bank_receipt=N&twotrs_isp=Y&block_isp=Y<?php echo $useescrow; ?>">
<input type="hidden" name="DEF_RESERVED" value="bank_receipt=N&twotrs_isp=Y&block_isp=Y<?php echo $useescrow; ?>">
<input type="hidden" name="P_NOTI" value="<?php echo $od_id; ?>">
<input type="hidden" name="P_QUOTABASE" value="01:02:03:04:05:06:07:08:09:10:11:12"> <!-- 할부기간 설정 01은 일시불 -->
<input type="hidden" name="P_SKIP_TERMS" value="Y">
<input type="hidden" name="good_mny" value="<?php echo $tot_price; ?>" >
<?php if($default['de_tax_flag_use']) { ?>
<input type="hidden" name="P_TAX" value="">
<input type="hidden" name="P_TAXFREE" value="">
<?php } ?>
</form>

View File

@ -0,0 +1,22 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//삼성페이 사용시에만 해당함
if( ! $default['de_samsung_pay_use'] || ('inicis' == $default['de_pg_service']) ){ //PG가 이니시스인 경우 아래 내용 사용 안함
return;
}
?>
<input type="hidden" name="good_mny" value="<?php echo $tot_price ?>" >
<input type="hidden" name="res_cd" value=""> <!-- 결과 코드 -->
<input type="hidden" name="P_HASH" value="">
<input type="hidden" name="P_TYPE" value="">
<input type="hidden" name="P_UNAME" value="">
<input type="hidden" name="P_AUTH_DT" value="">
<input type="hidden" name="P_AUTH_NO" value="">
<input type="hidden" name="P_HPP_CORP" value="">
<input type="hidden" name="P_APPL_NUM" value="">
<input type="hidden" name="P_VACT_NUM" value="">
<input type="hidden" name="P_VACT_NAME" value="">
<input type="hidden" name="P_VACT_BANK" value="">
<input type="hidden" name="P_CARD_ISSUER" value="">

View File

@ -0,0 +1,3 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>