#283 개인결제 기능 추가

This commit is contained in:
chicpro
2013-09-03 13:26:01 +09:00
parent d5288477be
commit 5027621753
27 changed files with 2881 additions and 8 deletions

View File

@ -8,6 +8,7 @@ $menu['menu400'] = array (
array('400410', '주문개별내역', G4_ADMIN_URL.'/shop_admin/orderstatuslist.php', 'scf_order_by', 1),
array('400420', '주문통합내역', G4_ADMIN_URL.'/shop_admin/orderlist2.php', 'scf_order_all', 1),
array('400430', '취소교환반품내역', G4_ADMIN_URL.'/shop_admin/orderrequestlist.php', 'scf_request', 1),
array('400440', '개인결제관리', G4_ADMIN_URL.'/shop_admin/personalpaylist.php', 'scf_personalpay', 1),
array('400200', '분류관리', G4_ADMIN_URL.'/shop_admin/categorylist.php', 'scf_cate'),
array('400300', '상품관리', G4_ADMIN_URL.'/shop_admin/itemlist.php', 'scf_item'),
array('400660', '상품문의', G4_ADMIN_URL.'/shop_admin/itemqalist.php', 'scf_item_qna'),

View File

@ -34,6 +34,11 @@ include_once (G4_ADMIN_PATH.'/admin.head.php');
<form name="fcouponform" action="./couponformupdate.php" method="post" onsubmit="return form_check(this);">
<input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="cp_id" value="<?php echo $cp_id; ?>">
<input type="hidden" name="sst" value="<?php echo $sst; ?>">
<input type="hidden" name="sod" value="<?php echo $sod; ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl; ?>">
<input type="hidden" name="stx" value="<?php echo $stx; ?>">
<input type="hidden" name="page" value="<?php echo $page;?>">
<section class="cbox">
<h2><?php echo $html_title; ?></h2>

View File

@ -761,6 +761,9 @@ $pg_anchor .='<li><a href="#anc_sodr_chk">결제상세정보 확인</a></li>
<div class="btn_confirm">
<input type="submit" value="결제/배송내역 수정" class="btn_submit">
<?php if($amount['미수'] > 0) { ?>
<a href="./personalpayform.php?popup=yes&amp;od_id=<?php echo $od_id; ?>" id="personalpay_add">개인결제추가</a>
<?php } ?>
</div>
</form>
</section>
@ -959,6 +962,13 @@ $(function() {
else
$chk.attr("checked", false);
});
// 개인결제추가
$("#personalpay_add").on("click", function() {
var href = this.href;
window.open(href, "personalpaywin", "left=100, top=100, width=700, height=650, scrollbars=yes");
return false;
});
});
function form_submit(f)

View File

@ -0,0 +1,63 @@
<?php
$sub_menu = '400440';
include_once('./_common.php');
auth_check($auth[$sub_menu], 'w');
$g4['title'] = '개인결제 복사';
include_once(G4_PATH.'/head.sub.php');
$sql = " select * from {$g4['shop_personalpay_table']} where pp_id = '$pp_id' ";
$row = sql_fetch($sql);
if(!$row['pp_id'])
alert_close('복사하시려는 개인결제 정보가 존재하지 않습니다.');
?>
<form name="fpersonalpaycopy" method="post" action="./personalpaycopyupdate.php" onsubmit="return form_check(this);">
<input type="hidden" name="pp_id" value="<?php echo $pp_id; ?>">
<div class="cbox">
<h1>개인결제 복사</h1>
<table class="frm_tbl">
<tbody>
<tr>
<th scope="row"><label for="pp_name">이름</label></th>
<td><input type="text" name="pp_name" value="<?php echo $row['pp_name']; ?>" id="pp_name" required class="required frm_input"></td>
</tr>
<tr>
<th scope="row"><label for="od_id">주문번호</label></th>
<td><input type="text" name="od_id" value="<?php echo $row['od_id']; ?>" id="od_id" class="frm_input"></td>
</tr>
<tr>
<th scope="row"><label for="pp_amount">주문금액</label></th>
<td><input type="text" name="pp_amount" value="" id="pp_amount" required class="required frm_input" size="20"> 원</td>
</tr>
</tbody>
</table>
<div class="btn_confirm">
<input type="submit" value="복사하기" class="btn_submit">
<button type="button" onclick="self.close();">창닫기</button>
</div>
</div>
</form>
<script>
// <![CDATA[
function form_check(f)
{
if(f.pp_amount.value.replace(/[0-9]/g, "").length > 0) {
alert("주문금액은 숫자만 입력해 주십시오");
return false;
}
return true;
}
// ]]>
</script>
<?php
include_once(G4_PATH.'/tail.sub.php');
?>

View File

@ -0,0 +1,54 @@
<?php
$sub_menu = '400440';
include_once('./_common.php');
auth_check($auth[$sub_menu], 'w');
$_POST = array_map('trim', $_POST);
if(!$_POST['pp_name'])
alert('이름을 입력해 주십시오.');
if(!$_POST['pp_amount'])
alert('주문금액을 입력해 주십시오.');
if(preg_match('/[^0-9]/', $_POST['pp_amount']))
alert('주문금액은 숫자만 입력해 주십시오.');
if($_POST['od_id']) {
$sql = " select od_id from {$g4['shop_order_table']} where od_id = '{$_POST['od_id']}' ";
$od = sql_fetch($sql);
if(!$od['od_id'])
alert('입력하신 주문번호는 존재하지 않습니다.');
}
$sql = " select * from {$g4['shop_personalpay_table']} where pp_id = '$pp_id' ";
$row = sql_fetch($sql);
if(!$row['pp_id'])
alert_close('복사하시려는 개인결제 정보가 존재하지 않습니다.');
$new_pp_id = get_uniqid();
$sql = " insert into {$g4['shop_personalpay_table']}
set pp_id = '$new_pp_id',
od_id = '{$_POST['od_id']}',
pp_name = '{$_POST['pp_name']}',
pp_content = '{$row['pp_content']}',
pp_use = '{$row['pp_use']}',
pp_amount = '{$_POST['pp_amount']}',
pp_ip = '{$_SERVER['REMOTE_ADDR']}',
pp_time = '".G4_TIME_YMDHIS."' ";
sql_query($sql);
$g4['title'] = '개인결제 복사';
include_once(G4_PATH.'/head.sub.php');
?>
<script>
alert("개인결제 정보가 복사되었습니다.");
window.opener.location.reload();
self.close();
</script>
<?php
include_once(G4_PATH.'/tail.sub.php');
?>

View File

@ -0,0 +1,154 @@
<?php
$sub_menu = '400440';
include_once('./_common.php');
auth_check($auth[$sub_menu], "w");
$g4['title'] = '개인결제 관리';
if ($w == 'u') {
$html_title = '개인결제 수정';
$sql = " select * from {$g4['shop_personalpay_table']} where pp_id = '$pp_id' ";
$pp = sql_fetch($sql);
if (!$pp['pp_id']) alert('등록된 자료가 없습니다.');
}
else
{
$html_title = '개인결제 입력';
$pp['pp_use'] = 1;
}
if($popup == 'yes') {
include_once(G4_PATH.'/head.sub.php');
$pp['od_id'] = $od_id;
$sql = " select od_id, od_name, (od_temp_amount - od_receipt_amount) as misu
from {$g4['shop_order_table']}
where od_id = '$od_id' ";
$od = sql_fetch($sql);
if(!$od['od_id'])
alert_close('주문정보가 존재하지 않습니다.');
$pp['pp_name'] = $od['od_name'];
if($od['misu'] > 0)
$pp['pp_amount'] = $od['misu'];
}
else
include_once (G4_ADMIN_PATH.'/admin.head.php');
?>
<form name="fpersonalpayform" action="./personalpayformupdate.php" method="post" onsubmit="return form_check(this);">
<input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="pp_id" value="<?php echo $pp_id; ?>">
<input type="hidden" name="sst" value="<?php echo $sst; ?>">
<input type="hidden" name="sod" value="<?php echo $sod; ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl; ?>">
<input type="hidden" name="stx" value="<?php echo $stx; ?>">
<input type="hidden" name="page" value="<?php echo $page; ?>">
<input type="hidden" name="popup" value="<?php echo $popup; ?>">
<section class="cbox">
<h2><?php echo $html_title; ?></h2>
<table class="frm_tbl">
<colgroup>
<col class="grid_3">
<col>
</colgroup>
<tbody>
<tr>
<th scope="row"><label for="pp_name">이름</label></th>
<td><input type="text" name="pp_name" value="<?php echo $pp['pp_name']; ?>" id="pp_name" required class="required frm_input"></td>
</tr>
<tr>
<th scope="row"><label for="pp_amount">주문금액</label></th>
<td><input type="text" name="pp_amount" value="<?php echo $pp['pp_amount']; ?>" id="pp_amount" required class="required frm_input" size="15"> 원</td>
</tr>
<tr>
<th scope="row"><label for="od_id">주문번호</label></th>
<td><input type="text" name="od_id" value="<?php echo $pp['od_id'] ? $pp['od_id'] : ''; ?>" id="od_id" class="frm_input" size="20"></td>
</tr>
<tr>
<th scope="row"><label for="pp_content">내용</label></th>
<td><textarea name="pp_content" id="pp_content" rows="8"><?php echo $pp['pp_content']; ?></textarea></td>
</tr>
<?php if($popup != 'yes') { ?>
<tr>
<th scope="row"><label for="pp_receipt_amount">결제금액</label></th>
<td><input type="text" name="pp_receipt_amount" value="<?php echo $pp['pp_receipt_amount'] ? $pp['pp_receipt_amount'] : ''; ?>" id="pp_receipt_amount" class="frm_input" size="15"> 원</td>
</tr>
<tr>
<th scope="row"><label for="pp_settle_case">결제방법</label></th>
<td>
<select name="pp_settle_case" id="pp_settle_case">
<option value="" <?php echo get_selected($pp['pp_settle_case'], ''); ?>>선택</option>
<option value="무통장" <?php echo get_selected($pp['pp_settle_case'], '무통장'); ?>>무통장</option>
<option value="계좌이체" <?php echo get_selected($pp['pp_settle_case'], '계좌이체'); ?>>계좌이체</option>
<option value="가상계좌" <?php echo get_selected($pp['pp_settle_case'], '가상계좌'); ?>>가상계좌</option>
<option value="신용카드" <?php echo get_selected($pp['pp_settle_case'], '신용카드'); ?>>신용카드</option>
<option value="휴대폰" <?php echo get_selected($pp['pp_settle_case'], '휴대폰'); ?>>휴대폰</option>
</select>
</td>
</tr>
<tr>
<th scope="row"><label for="pp_receipt_time">결제일시</label></th>
<td>
<label for="pp_receipt_chk">현재 시간으로 설정</label>
<input type="checkbox" name="pp_receipt_chk" id="pp_receipt_chk" value="<?php echo date("Y-m-d H:i:s", G4_SERVER_TIME); ?>" onclick="if (this.checked == true) this.form.pp_receipt_time.value=this.form.pp_receipt_chk.value; else this.form.pp_receipt_time.value = this.form.pp_receipt_time.defaultValue;"><br>
<input type="text" name="pp_receipt_time" value="<?php echo is_null_time($pp['pp_receipt_time']) ? "" : $pp['pp_receipt_time']; ?>" id="pp_receipt_time" class="frm_input" maxlength="19">
</td>
</tr>
<?php } ?>
<tr>
<th scope="row"><label for="pp_shop_memo">상점메모</label></th>
<td><textarea name="pp_shop_memo" id="pp_shop_memo" rows="8"><?php echo $pp['pp_shop_memo']; ?></textarea></td>
</tr>
<tr>
<th scope="row"><label for="pp_use">사용</label></th>
<td>
<select name="pp_use" id="pp_use">
<option value="1" <?php echo get_selected($pp['pp_use'], 1); ?>>사용함</option>
<option value="0" <?php echo get_selected($pp['pp_use'], 0); ?>>사용안함</option>
</select>
</td>
</tr>
</tbody>
</table>
<div class="btn_confirm">
<input type="submit" value="확인" class="btn_submit" accesskey="s">
<?php if($popup == 'yes') { ?>
<button type="button" onclick="self.close();">닫기</button>
<?php } else { ?>
<a href="./personalpaylist.php?<?php echo $qstr; ?>">목록</a>
<?php } ?>
<?php if($w == 'u') { ?>
<a href="./personalpayformupdate.php?w=d&amp;pp_id=<?php echo $pp['pp_id']; ?>" onclick="return del_confirm();">삭제</a>
<?php } ?>
</div>
</section>
</form>
<script>
function form_check(f)
{
if(f.pp_amount.value.replace(/[0-9]/g, "").length > 0) {
alert("주문금액은 숫자만 입력해 주십시오");
return false;
}
return true;
}
function del_confirm()
{
return confirm("개인결제 정보를 삭제하시겠습니까?\n\n삭제한 정보는 복구할 수 없습니다.");
}
</script>
<?php
if($popup == 'yes')
include_once(G4_PATH.'/tail.sub.php');
else
include_once (G4_ADMIN_PATH.'/admin.tail.php');
?>

View File

@ -0,0 +1,70 @@
<?php
$sub_menu = '400440';
include_once('./_common.php');
if($w == 'd') {
auth_check($auth[$sub_menu], 'd');
$sql = " select pp_id from {$g4['shop_personalpay_table']} where pp_id = '{$_GET['pp_id']}' ";
$row = sql_fetch($sql);
if(!$row['pp_id'])
alert('삭제하시려는 자료가 존재하지 않습니다.');
sql_query(" delete from {$g4['shop_personalpay_table']} where pp_id = '{$_GET['pp_id']}' ");
goto_url('./personalpaylist.php?'.$qstr);
} else {
auth_check($auth[$sub_menu], 'w');
$_POST = array_map('trim', $_POST);
if(!$_POST['pp_name'])
alert('이름을 입력해 주십시오.');
if(!$_POST['pp_amount'])
alert('주문금액을 입력해 주십시오.');
if(preg_match('/[^0-9]/', $_POST['pp_amount']))
alert('주문금액은 숫자만 입력해 주십시오.');
if($_POST['od_id']) {
$sql = " select od_id from {$g4['shop_order_table']} where od_id = '{$_POST['od_id']}' ";
$row = sql_fetch($sql);
if(!$row['od_id'])
alert('입력하신 주문번호는 존재하지 않는 주문 자료입니다.');
}
$sql_common = " pp_name = '{$_POST['pp_name']}',
pp_amount = '{$_POST['pp_amount']}',
od_id = '{$_POST['od_id']}',
pp_content = '{$_POST['pp_content']}',
pp_receipt_amount = '{$_POST['pp_receipt_amount']}',
pp_settle_case = '{$_POST['pp_settle_case']}',
pp_receipt_time = '{$_POST['pp_receipt_time']}',
pp_shop_memo = '{$_POST['pp_shop_memo']}',
pp_use = '{$_POST['pp_use']}' ";
}
if($w == '') {
$pp_id = get_uniqid();
$sql = " insert into {$g4['shop_personalpay_table']}
set pp_id = '$pp_id',
$sql_common ,
pp_ip = '{$_SERVER['REMOTE_ADDR']}',
pp_time = '".G4_TIME_YMDHIS."' ";
sql_query($sql);
} else if($w == 'u') {
$sql = " select pp_id from {$g4['shop_personalpay_table']} where pp_id = '{$_POST['pp_id']}' ";
$row = sql_fetch($sql);
if(!$row['pp_id'])
alert('수정하시려는 자료가 존재하지 않습니다.');
$sql = " update {$g4['shop_personalpay_table']}
set $sql_common
where pp_id = '{$_POST['pp_id']}' ";
sql_query($sql);
}
if($popup == 'yes')
alert_close('개인결제가 추가됐습니다.');
else
goto_url('./personalpayform.php?w=u&amp;pp_id='.$pp_id.'&amp;'.$qstr);
?>

View File

@ -0,0 +1,190 @@
<?php
$sub_menu = '400440';
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
$token = get_token();
$sql_common = " from {$g4['shop_personalpay_table']} ";
$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
case 'pp_id' :
$sql_search .= " ({$sfl} = '{$stx}') ";
break;
case 'od_id' :
$sql_search .= " ({$sfl} = '{$stx}') ";
break;
default :
$sql_search .= " ({$sfl} like '%{$stx}%') ";
break;
}
$sql_search .= " ) ";
}
if (!$sst) {
$sst = "pp_id";
$sod = "desc";
}
$sql_order = " order by {$sst} {$sod} ";
$sql = " select count(*) as cnt
{$sql_common}
{$sql_search}
{$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page == '') $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select *
{$sql_common}
{$sql_search}
{$sql_order}
limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$g4['title'] = '개인결제 관리';
include_once (G4_ADMIN_PATH.'/admin.head.php');
$colspan = 8;
?>
<form name="fsearch" id="fsearch" method="get">
<fieldset>
<legend>개인결제 검색</legend>
<span>
<?php echo $listall ?>
전체 <?php echo number_format($total_count) ?> 건
</span>
<select name="sfl" title="검색대상">
<option value="pp_id"<?php echo get_selected($_GET['sfl'], "pp_id"); ?>>개인결제번호</option>
<option value="pp_name"<?php echo get_selected($_GET['sfl'], "pp_name"); ?>>이름</option>
<option value="od_id"<?php echo get_selected($_GET['sfl'], "od_id"); ?>>주문번호</option>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
<input type="submit" class="btn_submit" value="검색">
</fieldset>
</form>
<section id="spp_list" class="cbox">
<h2>개인결제 내역</h2>
<div class="btn_add sort_with">
<a href="./personalpayform.php" id="personalpay_add">개인결제 추가</a>
</div>
<ul class="sort_odr">
<li><?php echo subject_sort_link('pp_id') ?>개인결제번호<span class="sound_only"> 순 정렬</span></a></li>
<li><?php echo subject_sort_link('od_id') ?>주문번호<span class="sound_only"> 순 정렬</span></a></li>
<li><?php echo subject_sort_link('pp_receipt_time') ?>입금일<span class="sound_only"> 순 정렬</span></a></li>
</ul>
<form name="fpersonalpaylist" id="fpersonalpaylist" method="post" action="./personalpaylistdelete.php" onsubmit="return fpersonalpaylist_submit(this);">
<input type="hidden" name="sst" value="<?php echo $sst; ?>">
<input type="hidden" name="sod" value="<?php echo $sod; ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl; ?>">
<input type="hidden" name="stx" value="<?php echo $stx; ?>">
<input type="hidden" name="page" value="<?php echo $page; ?>">
<input type="hidden" name="token" value="<?php echo $token; ?>">
<table class="tbl_pt_list">
<thead>
<tr>
<th scope="col">
<label for="chkall" class="sound_only">개인결제 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th>
<th scope="col">이름</th>
<th scope="col">주문번호</th>
<th scope="col">주문금액</th>
<th scope="col">입금금액</th>
<th scope="col">미수금액</th>
<th scope="col">입금방법</a></th>
<th scope="col">입금일</a></th>
<th scope="col">사용</th>
<th scope="col">관리</th>
</tr>
</thead>
<tbody>
<?php
for ($i=0; $row=sql_fetch_array($result); $i++) {
if($row['od_id'])
$od_id = '<a href="./orderform.php?od_id='.$row['od_id'].'" target="_blank">'.$row['od_id'].'</a>';
else
$od_id = '&nbsp;';
?>
<tr>
<td class="td_chk">
<input type="hidden" id="pp_id_<?php echo $i; ?>" name="pp_id[<?php echo $i; ?>]" value="<?php echo $row['pp_id']; ?>">
<input type="checkbox" id="chk_<?php echo $i; ?>" name="chk[]" value="<?php echo $i; ?>" title="내역선택">
</td>
<td class="spp_list_name"><?php echo $row['pp_name']; ?></td>
<td class="spp_list_id"><?php echo $od_id; ?></td>
<td><?php echo number_format($row['pp_amount']); ?></td>
<td class="td_name"><?php echo number_format($row['pp_receipt_amount']); ?></td>
<td class="td_name"><?php echo number_format($row['pp_amount'] - $row['pp_receipt_amount']); ?></td>
<td class="td_time"><?php echo $row['pp_settle_case']; ?></td>
<td><?php echo is_null_time($row['pp_receipt_time']) ? '' : substr($row['pp_receipt_time'], 2, 8); ?></td>
<td class="td_boolean"><?php echo $row['pp_use'] ? '예' : '아니오'; ?></td>
<td class="td_smallmng">
<a href="./personalpayform.php?w=u&amp;pp_id=<?php echo $row['pp_id']; ?>&amp;<?php echo $qstr; ?>"><span class="sound_only"><?php echo $row['pp_id']; ?> </span>수정</a>
<a href="./personalpaycopy.php?pp_id=<?php echo $row['pp_id']; ?>" class="personalpaycopy"><span class="sound_only"><?php echo $row['pp_id']; ?> </span>복사</a>
</td>
</tr>
<?php
}
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
<div class="btn_list">
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value">
</div>
</form>
</section>
<?php echo get_paging(G4_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['PHP_SELF']}?$qstr&amp;page="); ?>
<script>
$(function() {
$(".personalpaycopy").on("click", function() {
var href = this.href;
window.open(href, "copywin", "left=100, top=100, width=600, height=300, scrollbars=0");
return false;
});
});
function fpersonalpaylist_submit(f)
{
if (!is_checked("chk[]")) {
alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(document.pressed == "선택삭제") {
if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false;
}
}
return true;
}
</script>
<?php
include_once (G4_ADMIN_PATH.'/admin.tail.php');
?>

View File

@ -0,0 +1,25 @@
<?php
$sub_menu = '400440';
include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], 'd');
check_token();
$count = count($_POST['chk']);
if(!$count)
alert('선택삭제 하실 항목을 하나이상 선택해 주세요.');
for ($i=0; $i<$count; $i++)
{
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
$sql = " delete from {$g4['shop_personalpay_table']} where pp_id = '{$_POST['pp_id'][$k]}' ";
sql_query($sql);
}
goto_url('./personalpaylist.php');
?>

View File

@ -416,6 +416,31 @@ if(!sql_query(" select it_mobile_name from {$g4['shop_item_table']} limit 1 ", f
ADD `it_mobile_name` VARCHAR(255) NOT NULL DEFAULT '' AFTER `it_name` ", true);
}
// 개인결제 테이블추가
if(!sql_query(" select pp_id from {$g4['shop_personalpay_table']} limit 1 ", false)) {
sql_query(" CREATE TABLE IF NOT EXISTS `{$g4['shop_personalpay_table']}` (
`pp_id` BIGINT(20) unsigned NOT NULL,
`od_id` BIGINT(20) unsigned NOT NULL,
`pp_name` VARCHAR(255) NOT NULL DEFAULT '',
`pp_content` TEXT NOT NULL,
`pp_use` TINYINT(4) NOT NULL DEFAULT '0',
`pp_amount` INT(11) NOT NULL DEFAULT '0',
`pp_tno` varchar(255) NOT NULL DEFAULT '',
`pp_app_no` varchar(20) NOT NULL DEFAULT '',
`pp_receipt_amount` INT(11) NOT NULL DEFAULT '0',
`pp_settle_case` VARCHAR(255) NOT NULL DEFAULT '',
`pp_bank_account` VARCHAR(255) NOT NULL DEFAULT '',
`pp_deposit_name` VARCHAR(255) NOT NULL DEFAULT '',
`pp_receipt_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`pp_receipt_ip` VARCHAR(255) NOT NULL DEFAULT '',
`pp_shop_memo` TEXT NOT NULL,
`pp_ip` VARCHAR(255) NOT NULL DEFAULT '',
`pp_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`pp_id`),
KEY `od_id` (`od_id`)
)", true);
}
// od_app_no 필드 추가
if(!sql_query(" select od_app_no from {$g4['shop_order_table']} limit 1 ", false)) {
sql_query(" ALTER TABLE `{$g4['shop_order_table']}`

View File

@ -492,6 +492,7 @@ if($shop_install) {
fwrite($f, "\$g4['shop_coupon_table'] = SHOP_TABLE_PREFIX.'coupon'; // 쿠폰정보 테이블\n");
fwrite($f, "\$g4['shop_sendcost_table'] = SHOP_TABLE_PREFIX.'sendcost'; // 추가배송비 테이블\n");
fwrite($f, "\$g4['shop_request_table'] = SHOP_TABLE_PREFIX.'request'; // 주문 취소, 교환, 반품 요청테이블\n");
fwrite($f, "\$g4['shop_personalpay_table'] = SHOP_TABLE_PREFIX.'personalpay'; // 개인결제 정보 테이블\n");
fwrite($f, "?>");
}

View File

@ -615,6 +615,35 @@ CREATE TABLE IF NOT EXISTS `shop_order` (
-- --------------------------------------------------------
--
-- Table structure for table `shop_personalpay`
--
DROP TABLE IF EXISTS `shop_personalpay`;
CREATE TABLE IF NOT EXISTS `shop_personalpay` (
`pp_id` BIGINT(20) unsigned NOT NULL,
`od_id` BIGINT(20) unsigned NOT NULL,
`pp_name` VARCHAR(255) NOT NULL DEFAULT '',
`pp_content` TEXT NOT NULL,
`pp_use` TINYINT(4) NOT NULL DEFAULT '0',
`pp_amount` INT(11) NOT NULL DEFAULT '0',
`pp_tno` VARCHAR(255) NOT NULL DEFAULT '',
`pp_app_no` VARCHAR(20) NOT NULL DEFAULT '',
`pp_receipt_amount` INT(11) NOT NULL DEFAULT '0',
`pp_settle_case` VARCHAR(255) NOT NULL DEFAULT '',
`pp_bank_account` VARCHAR(255) NOT NULL DEFAULT '',
`pp_deposit_name` VARCHAR(255) NOT NULL DEFAULT '',
`pp_receipt_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`pp_receipt_ip` VARCHAR(255) NOT NULL DEFAULT '',
`pp_shop_memo` TEXT NOT NULL,
`pp_ip` VARCHAR(255) NOT NULL DEFAULT '',
`pp_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`pp_id`),
KEY `od_id` (`od_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `shop_request`
--

View File

@ -0,0 +1,327 @@
<?php
include_once('./_common.php');
/* ============================================================================== */
/* = PAGE : 결제 요청 PAGE = */
/* = -------------------------------------------------------------------------- = */
/* = 이 페이지는 주문 페이지를 통해서 결제자가 결제 요청을 하는 페이지 = */
/* = 입니다. 아래의 ※ 필수, ※ 옵션 부분과 매뉴얼을 참조하셔서 연동을 = */
/* = 진행하여 주시기 바랍니다. = */
/* = -------------------------------------------------------------------------- = */
/* = 연동시 오류가 발생하는 경우 아래의 주소로 접속하셔서 확인하시기 바랍니다.= */
/* = 접속 주소 : http://testpay.kcp.co.kr/pgsample/FAQ/search_error.jsp = */
/* = -------------------------------------------------------------------------- = */
/* = Copyright (c) 2010.05 KCP Inc. All Rights Reserved. = */
/* ============================================================================== */
?>
<?php
/* ============================================================================== */
/* = 환경 설정 파일 Include = */
/* = -------------------------------------------------------------------------- = */
/* = ※ 필수 = */
/* = 테스트 및 실결제 연동시 site_conf_inc.php파일을 수정하시기 바랍니다. = */
/* = -------------------------------------------------------------------------- = */
include G4_MSHOP_PATH.'/settle_kcp.inc.php'; // 환경설정 파일 include
?>
<?php
/* = -------------------------------------------------------------------------- = */
/* = 환경 설정 파일 Include END = */
/* ============================================================================== */
?>
<?php
/* kcp와 통신후 kcp 서버에서 전송되는 결제 요청 정보*/
$req_tx = $_POST[ "req_tx" ]; // 요청 종류
$res_cd = $_POST[ "res_cd" ]; // 응답 코드
$tran_cd = $_POST[ "tran_cd" ]; // 트랜잭션 코드
$ordr_idxx = $_POST[ "ordr_idxx" ]; // 쇼핑몰 주문번호
$good_name = $_POST[ "good_name" ]; // 상품명
$good_mny = $_POST[ "good_mny" ]; // 결제 총금액
$buyr_name = $_POST[ "buyr_name" ]; // 주문자명
$buyr_tel1 = $_POST[ "buyr_tel1" ]; // 주문자 전화번호
$buyr_tel2 = $_POST[ "buyr_tel2" ]; // 주문자 핸드폰 번호
$buyr_mail = $_POST[ "buyr_mail" ]; // 주문자 E-mail 주소
$use_pay_method = $_POST[ "use_pay_method" ]; // 결제 방법
$enc_info = $_POST[ "enc_info" ]; // 암호화 정보
$enc_data = $_POST[ "enc_data" ]; // 암호화 데이터
$rcvr_name = $_POST[ "rcvr_name" ]; // 수취인 이름
$rcvr_tel1 = $_POST[ "rcvr_tel1" ]; // 수취인 전화번호
$rcvr_tel2 = $_POST[ "rcvr_tel2" ]; // 수취인 휴대폰번호
$rcvr_mail = $_POST[ "rcvr_mail" ]; // 수취인 E-Mail
$rcvr_zipx = $_POST[ "rcvr_zipx" ]; // 수취인 우편번호
$rcvr_add1 = $_POST[ "rcvr_add1" ]; // 수취인 주소
$rcvr_add2 = $_POST[ "rcvr_add2" ]; // 수취인 상세주소
/* 주문폼에서 전송되는 정보 */
$ipgm_date = $_POST[ "ipgm_date" ]; // 입금마감일
$settle_method = $_POST[ "settle_method" ]; // 결제방법
$good_info = $_POST[ "good_info" ]; // 에스크로 상품정보
$bask_cntx = $_POST[ "bask_cntx" ]; // 장바구니 상품수
$tablet_size = $_POST[ "tablet_size" ]; // 모바일기기 화면비율
$comm_tax_mny = $_POST[ "comm_tax_mny" ]; // 과세금액
$comm_vat_mny = $_POST[ "comm_vat_mny" ]; // 부가세
$comm_free_mny = $_POST["comm_free_mny" ]; // 비과세금액
/*
* 기타 파라메터 추가 부분 - Start -
*/
$param_opt_1 = $_POST[ "param_opt_1" ]; // 기타 파라메터 추가 부분
$param_opt_2 = $_POST[ "param_opt_2" ]; // 기타 파라메터 추가 부분
$param_opt_3 = $_POST[ "param_opt_3" ]; // 기타 파라메터 추가 부분
/*
* 기타 파라메터 추가 부분 - End -
*/
/* kcp 데이터 캐릭터셋 변환 */
if($res_cd != '') {
$good_name = iconv('euc-kr', 'utf-8', $good_name);
$buyr_name = iconv('euc-kr', 'utf-8', $buyr_name);
$rcvr_name = iconv('euc-kr', 'utf-8', $rcvr_name);
$rcvr_add1 = iconv('euc-kr', 'utf-8', $rcvr_add1);
$rcvr_add2 = iconv('euc-kr', 'utf-8', $rcvr_add2);
}
switch($settle_method)
{
case '신용카드':
$pay_method = 'CARD';
$ActionResult = 'card';
break;
case '계좌이체':
$pay_method = 'BANK';
$ActionResult = 'acnt';
break;
case '휴대폰':
$pay_method = 'MOBX';
$ActionResult = 'mobx';
break;
case '가상계좌':
$pay_method = 'VCNT';
$ActionResult = 'vcnt';
break;
default:
$pay_method = '';
$ActionResult = '';
break;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<head>
<title>스마트폰 웹 결제창</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Cache-Control" content="No-Cache">
<meta http-equiv="Pragma" content="No-Cache">
<meta name="viewport" content="width=device-width; user-scalable=<?php echo $tablet_size; ?>; initial-scale=<?php echo $tablet_size; ?>; maximum-scale=<?php echo $tablet_size; ?>; minimum-scale=<?php echo $tablet_size; ?>">
<style type="text/css">
.LINE { background-color:#afc3ff }
.HEAD { font-family:"굴림","굴림체"; font-size:9pt; color:#065491; background-color:#eff5ff; text-align:left; padding:3px; }
.TEXT { font-family:"굴림","굴림체"; font-size:9pt; color:#000000; background-color:#FFFFFF; text-align:left; padding:3px; }
B { font-family:"굴림","굴림체"; font-size:13pt; color:#065491;}
INPUT { font-family:"굴림","굴림체"; font-size:9pt; }
SELECT{font-size:9pt;}
.COMMENT { font-family:"굴림","굴림체"; font-size:9pt; line-height:160% }
</style>
<!-- 거래등록 하는 kcp 서버와 통신을 위한 스크립트-->
<script src="<?php echo G4_MSHOP_URL; ?>/kcp/approval_key.js"></script>
<script language="javascript">
/* kcp web 결제창 호출 (변경불가)*/
function call_pay_form()
{
var v_frm = document.sm_form;
layer_cont_obj = document.getElementById("content");
layer_receipt_obj = document.getElementById("layer_receipt");
layer_cont_obj.style.display = "none";
layer_receipt_obj.style.display = "block";
v_frm.target = "frm_receipt";
v_frm.action = PayUrl;
if(v_frm.Ret_URL.value == "")
{
/* Ret_URL값은 현 페이지의 URL 입니다. */
alert("연동시 Ret_URL을 반드시 설정하셔야 됩니다.");
return false;
}
v_frm.submit();
}
/* kcp 통신을 통해 받은 암호화 정보 체크 후 결제 요청*/
function chk_pay()
{
/*kcp 결제서버에서 가맹점 주문페이지로 폼값을 보내기위한 설정(변경불가)*/
var sm_form = document.sm_form;
if (sm_form.res_cd.value == "3001" )
{
alert("사용자가 취소하였습니다.");
window.close();
return false;
}
else if (sm_form.res_cd.value == "3000" )
{
alert("30만원 이상 결제 할수 없습니다.");
window.close();
return false;
}
if (sm_form.enc_data.value != "" && sm_form.enc_info.value != "" && sm_form.tran_cd.value !="" )
{
var of = window.opener.document.fpersonalpayform;
of.req_tx.value = "<?php echo $req_tx; ?>";
of.res_cd.value = "<?php echo $res_cd; ?>";
of.tran_cd.value = "<?php echo $tran_cd; ?>";
of.ordr_idxx.value = "<?php echo $ordr_idxx; ?>";
of.good_mny.value = "<?php echo $good_mny; ?>";
of.good_name.value = "<?php echo $good_name; ?>";
of.buyr_name.value = "<?php echo $buyr_name; ?>";
of.buyr_tel1.value = "<?php echo $buyr_tel1; ?>";
of.buyr_tel2.value = "<?php echo $buyr_tel2; ?>";
of.buyr_mail.value = "<?php echo $buyr_mail; ?>";
of.enc_info.value = "<?php echo $enc_info; ?>";
of.enc_data.value = "<?php echo $enc_data; ?>";
of.use_pay_method.value = "<?php echo $use_pay_method; ?>";
of.rcvr_name.value = "<?php echo $rcvr_name; ?>";
of.rcvr_tel1.value = "<?php echo $rcvr_tel1; ?>";
of.rcvr_tel2.value = "<?php echo $rcvr_tel2; ?>";
of.rcvr_mail.value = "<?php echo $rcvr_mail; ?>";
of.rcvr_zipx.value = "<?php echo $rcvr_zipx; ?>";
of.rcvr_add1.value = "<?php echo $rcvr_add1; ?>";
of.rcvr_add2.value = "<?php echo $rcvr_add2; ?>";
of.param_opt_1.value = "<?php echo $param_opt_1; ?>";
of.param_opt_2.value = "<?php echo $param_opt_2; ?>";
of.param_opt_3.value = "<?php echo $param_opt_3; ?>";
var od = window.opener.document;
od.getElementById("display_pay_button").style.display = "none";
//od.getElementById("show_req_btn").style.display = "none";
//od.getElementById("show_progress").style.display = "block";
//od.getElementById("show_pay_btn").style.display = "inline";
//alert("주문하기를 클릭하셔야 주문이 완료됩니다.");
window.opener.fpersonalpayform_check();
window.close();
} else {
kcp_AJAX();
}
}
</script>
</head>
<body onload="chk_pay();">
<div id="content">
<form name="sm_form" method="POST" accept-charset="euc-kr">
<input type="hidden" name="good_name" value="<?php echo $good_name; ?>">
<input type="hidden" name="good_mny" value="<?php echo $good_mny; ?>" >
<input type="hidden" name='buyr_name' value="<?php echo $buyr_name; ?>">
<input type="hidden" name="buyr_tel1" value="<?php echo $buyr_tel1; ?>">
<input type="hidden" name="buyr_tel2" value="<?php echo $buyr_tel2; ?>">
<input type="hidden" name="buyr_mail" value="<?php echo $buyr_mail; ?>">
<input type="hidden" name="ipgm_date" value="<?php echo $ipgm_date; ?>">
<!-- 필수 사항 -->
<!-- 요청 구분 -->
<input type="hidden" name="req_tx" value="pay">
<!-- 사이트 코드 -->
<input type="hidden" name="site_cd" value="<?php echo $g_conf_site_cd; ?>">
<!-- 사이트 키 -->
<input type="hidden" name="site_key" value="<?php echo $g_conf_site_key; ?>">
<!-- 사이트 이름 -->
<input type="hidden" name="shop_name" value="<?php echo $g_conf_site_name; ?>">
<!-- 결제수단-->
<input type="hidden" name="pay_method" value="<?php echo $pay_method; ?>">
<!-- 주문번호 -->
<input type="hidden" name="ordr_idxx" value="<?php echo $ordr_idxx; ?>">
<!-- 최대 할부개월수 -->
<input type="hidden" name="quotaopt" value="12">
<!-- 통화 코드 -->
<input type="hidden" name="currency" value="410">
<!-- 결제등록 키 -->
<input type="hidden" name="approval_key" id="approval">
<!-- 리턴 URL (kcp와 통신후 결제를 요청할 수 있는 암호화 데이터를 전송 받을 가맹점의 주문페이지 URL) -->
<!-- 반드시 가맹점 주문페이지의 URL을 입력 해주시기 바랍니다. -->
<input type="hidden" name="Ret_URL" value="<?php echo G4_MSHOP_URL; ?>/kcp/personalpay_approval_form.php">
<!-- 인증시 필요한 파라미터(변경불가)-->
<input type="hidden" name="ActionResult" value="<?php echo $ActionResult; ?>">
<!-- 에스크로 사용유무 에스크로 사용 업체(가상계좌만 해당)는 Y로 세팅 해주시기 바랍니다.-->
<input type="hidden" name="escw_used" value="Y">
<!-- 에스크로 결제처리모드 -->
<input type="hidden" name="pay_mod" value="<?php echo ($default['de_escrow_use']?'O':'N'); ?>">
<!-- 수취인이름 -->
<input type="hidden" name="rcvr_name" value="<?php echo $rcvr_name; ?>">
<!-- 수취인 연락처 -->
<input type="hidden" name="rcvr_tel1" value="<?php echo $rcvr_tel1; ?>">
<!-- 수취인 휴대폰 번호 -->
<input type="hidden" name="rcvr_tel2" value="<?php echo $rcvr_tel2; ?>">
<!-- 수취인 E-MAIL -->
<input type="hidden" name="rcvr_add1" value="<?php echo $rcvr_add1; ?>">
<!-- 수취인 우편번호 -->
<input type="hidden" name="rcvr_add2" value="<?php echo $rcvr_add2; ?>">
<!-- 수취인 주소 -->
<input type="hidden" name="rcvr_mail" value="<?php echo $rcvr_mail; ?>">
<!-- 수취인 상세 주소 -->
<input type="hidden" name="rcvr_zipx" value="<?php echo $rcvr_zipx; ?>">
<!-- 장바구니 상품 개수 -->
<input type="hidden" name="bask_cntx" value="<?php echo $bask_cntx; ?>">
<!-- 장바구니 정보(상단 스크립트 참조) -->
<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; ?>"/>
<!-- 기타 파라메터 추가 부분 - 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="res_cd" value="<?php echo $res_cd; ?>"> <!-- 결과 코드 -->
<input type="hidden" name="tran_cd" value="<?php echo $tran_cd; ?>"> <!-- 트랜잭션 코드 -->
<input type="hidden" name="enc_info" value="<?php echo $enc_info; ?>"> <!-- 암호화 정보 -->
<input type="hidden" name="enc_data" value="<?php echo $enc_data; ?>"> <!-- 암호화 데이터 -->
</form>
</div>
<!-- 스마트폰에서 KCP 결제창을 레이어 형태로 구현-->
<div id="layer_receipt" style="position:absolute; left:1px; top:1px; width:310;height:400; z-index:1; display:none;">
<table width="310" border="-" cellspacing="0" cellpadding="0" style="text-align:center">
<tr>
<td>
<iframe name="frm_receipt" frameborder="0" border="0" width="310" height="400" scrolling="auto"></iframe>
</td>
</tr>
</table>
</div>
</body>
</html>

View File

@ -0,0 +1,66 @@
<?php
include_once('./_common.php');
$g4['title'] = '개인결제 리스트';
include_once(G4_MSHOP_PATH.'/_head.php');
?>
<!-- 상품 목록 시작 { -->
<div id="sct">
<?php
// 리스트 유형별로 출력
$list_file = G4_MSHOP_SKIN_PATH.'/personalpay.skin.php';
if (file_exists($list_file)) {
$list_mod = 10;
$img_width = 230;
$img_height = 230;
$sql_common = " from {$g4['shop_personalpay_table']}
where pp_use = '1'
and pp_receipt_amount = '0' ";
// 총몇개 = 한줄에 몇개 * 몇줄
$items = $list_mod;
$sql = "select COUNT(*) as cnt $sql_common ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
// 전체 페이지 계산
$total_page = ceil($total_count / $items);
// 페이지가 없으면 첫 페이지 (1 페이지)
if ($page == "") $page = 1;
// 시작 레코드 구함
$from_record = ($page - 1) * $items;
$sql = " select *
$sql_common
order by pp_id desc
limit $from_record, $items";
$result = sql_query($sql);
include $list_file;
}
else
{
$i = 0;
$error = '<p class="sct_nofile">personalpay.skin.php 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</p>';
}
if ($i==0)
{
echo '<div><p class="sct_noitem">등록된 개인결제가 없습니다.</p></div>';
}
?>
<?php
echo get_paging($config['cf_mobile_pages'], $page, $total_page, $_SERVER['PHP_SELF'].'?'.$qstr.'&amp;page=');
?>
</div>
<!-- } 상품 목록 끝 -->
<?php
include_once(G4_MSHOP_PATH.'/_tail.php');
?>

View File

@ -0,0 +1,375 @@
<?php
include_once('./_common.php');
$sql = " select * from {$g4['shop_personalpay_table']} where pp_id = '$pp_id' and pp_use = '1' and pp_amount > 0 ";
$pp = sql_fetch($sql);
if(!$pp['pp_id'])
alert('개인결제 정보가 존재하지 않습니다.');
if($pp['pp_receipt_amount'] > 0)
alert('이미 결제하신 개인결제 내역입니다.');
$g4['title'] = $pp['pp_name'].'님 개인결제';
include_once(G4_MSHOP_PATH.'/_head.php');
$action_url = G4_HTTPS_MSHOP_URL.'/personalpayformupdate.php';
if (file_exists('./settle_'.$default['de_card_pg'].'.inc.php')) {
include './settle_'.$default['de_card_pg'].'.inc.php';
}
// 결제등록 요청시 사용할 입금마감일
$ipgm_date = date("Ymd", (G4_SERVER_TIME + 86400 * 5));
$tablet_size = "1.0"; // 화면 사이즈 조정 - 기기화면에 맞게 수정(갤럭시탭,아이패드 - 1.85, 스마트폰 - 1.0)
// 개인결제 체크를 위한 hash
$hash_data = md5($pp['pp_id'].$pp['pp_amount'].$pp['pp_time']);
set_session('ss_personalpay_id', $pp['pp_id']);
set_session('ss_personalpay_hash', $hash_data);
?>
<div id="sod_approval_frm">
<!-- 거래등록 하는 kcp 서버와 통신을 위한 스크립트-->
<script src="<?php echo G4_MSHOP_URL; ?>/kcp/approval_key.js"></script>
<form name="sm_form" method="POST" action="<?php echo G4_MSHOP_URL; ?>/kcp/personalpay_approval_form.php">
<input type="hidden" name="good_name" value="<?php echo $pp['pp_name'].'님 개인결제'; ?>">
<input type="hidden" name="good_mny" value="<?php echo $pp['pp_amount']; ?>" >
<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="ipgm_date" value="<?php echo $ipgm_date; ?>">
<input type="hidden" name="settle_method" value="">
<!-- 주문번호 -->
<input type="hidden" name="ordr_idxx" value="<?php echo $pp['pp_id']; ?>">
<!-- 결제등록 키 -->
<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="1">
<!-- 장바구니 정보(상단 스크립트 참조) -->
<input type="hidden" name="good_info" value="<?php echo $pp['pp_name'].'님 개인결제'; ?>">
<!-- 배송소요기간 -->
<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; ?>"/>
<!-- 기타 파라메터 추가 부분 - 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"/> */
-->
</form>
</div>
<div id="sod_frm">
<form name="fpersonalpayform" method="post" action="<?php echo $action_url; ?>" autocomplete="off">
<input type="hidden" name="pp_id" value="<?php echo $pp['pp_id']; ?>">
<section id="sod_frm_orderer">
<h2>개인결제정보</h2>
<table class="frm_tbl">
<tbody>
<tr>
<th>결제금액</th>
<td><?php echo display_price($pp['pp_amount']); ?></td>
</tr>
<tr>
<th scope="row"><label for="pp_name">이름</label></th>
<td><input type="text" name="pp_name" value="<?php echo $pp['pp_name']; ?>" id="pp_name" required class="required frm_input"></td>
</tr>
<tr>
<th scope="row"><label for="pp_email">이메일</label></th>
<td><input type="text" name="pp_email" value="<?php echo $member['mb_email']; ?>" id="pp_email" required class="required frm_input"></td>
</tr>
<tr>
<th scope="row"><label for="pp_hp">휴대폰</label></th>
<td><input type="text" name="pp_hp" value="<?php echo $member['mb_hp']; ?>" id="pp_hp" class="frm_input"></td>
</tr>
</tbody>
</table>
<?php
$multi_settle == 0;
$checked = '';
$escrow_title = "";
if ($default['de_escrow_use']) {
$escrow_title = "에스크로 ";
}
if ($default['de_vbank_use'] || $default['de_bank_use'] || $default['de_bank_use'] || $default['de_bank_use']) {
echo '<fieldset id="sod_frm_paysel">';
echo '<legend>결제방법 선택</legend>';
}
// 가상계좌 사용
if ($default['de_vbank_use']) {
$multi_settle++;
echo '<input type="radio" id="pp_settle_vbank" name="pp_settle_case" value="가상계좌" '.$checked.'> <label for="pp_settle_vbank">'.$escrow_title.'가상계좌</label>'.PHP_EOL;
$checked = '';
}
// 계좌이체 사용
if ($default['de_iche_use']) {
$multi_settle++;
echo '<input type="radio" id="pp_settle_iche" name="pp_settle_case" value="계좌이체" '.$checked.'> <label for="pp_settle_iche">'.$escrow_title.'계좌이체</label>'.PHP_EOL;
$checked = '';
}
// 휴대폰 사용
if ($default['de_hp_use']) {
$multi_settle++;
echo '<input type="radio" id="pp_settle_hp" name="pp_settle_case" value="휴대폰" '.$checked.'> <label for="pp_settle_hp">휴대폰</label>'.PHP_EOL;
$checked = '';
}
// 신용카드 사용
if ($default['de_card_use']) {
$multi_settle++;
echo '<input type="radio" id="pp_settle_card" name="pp_settle_case" value="신용카드" '.$checked.'> <label for="pp_settle_card">신용카드</label>'.PHP_EOL;
$checked = '';
}
if ($default['de_vbank_use'] || $default['de_bank_use'] || $default['de_bank_use'] || $default['de_bank_use']) {
echo '</fieldset>';
}
?>
<?php
if (!$default['de_card_point'])
echo '<p><strong>무통장입금</strong> 이외의 결제 수단으로 결제하시는 경우 포인트를 적립해드리지 않습니다.</p>';
if ($multi_settle == 0)
echo '<p>결제할 방법이 없습니다.<br>운영자에게 알려주시면 감사하겠습니다.</p>';
?>
</section>
<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="">
<p id="show_progress" style="display:none;">반드시 결제하기 버튼을 클릭 하셔야만 결제가 진행됩니다.</p>
<div id="display_pay_button" class="btn_confirm">
<span id="show_req_btn"><input type="button" name="submitChecked" onClick="kcp_approval();" value="결제등록요청"class="btn_submit"></span>
<span id="show_pay_btn" style="display:none;"><input type="button" onClick="fpersonalpayform_check();" value="결제하기" class="btn_submit"></span>
<a href="javascript:history.go(-1);" class="btn_cancel">취소</a>
</div>
</form>
<?php if ($default['de_escrow_use']) { ?>
<section id="sod_frm_escrow">
<h2>에스크로 안내</h2>
<form name="escrow_foot" method="post" action="http://admin.kcp.co.kr/Modules/escrow/kcp_pop.jsp">
<input type="hidden" name="site_cd" value="SR<?php echo $default['de_kcp_mid']; ?>">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align='center'><img src="<?php echo G4_SHOP_URL; ?>/img/marks_escrow/escrow_foot.gif" width="290" height="92" border="0" usemap="#Map"></td>
</tr>
<tr>
<td style='line-height:150%;'>
<br>
<strong>에스크로(escrow) 제도란?</strong>
<br>상거래 시에, 판매자와 구매자의 사이에 신뢰할 수 있는 중립적인 제삼자(여기서는 <a href='http://kcp.co.kr' target='_blank'>KCP</a>)가 중개하여
금전 또는 물품을 거래를 하도록 하는 것, 또는 그러한 서비스를 말한다. 거래의 안전성을 확보하기 위해 이용된다.
(2006.4.1 전자상거래 소비자보호법에 따른 의무 시행)
<br><br>
5만원 이상의 현금 거래에만 해당(에스크로 결제를 선택했을 경우에만 해당)되며,
신용카드로 구매하는 거래, 배송이 필요하지 않은 재화 등을 구매하는 거래(컨텐츠 등),
5만원 미만의 현금 거래에는 해당되지 않는다.
<br>
<br>
</td>
</tr>
</table>
<map name="Map" id="Map">
<area shape="rect" coords="5,62,74,83" href="javascript:escrow_foot_check()" alt="가입사실확인">
</map>
</form>
</section>
<script>
function escrow_foot_check()
{
var status = "width=500 height=450 menubar=no,scrollbars=no,resizable=no,status=no";
var obj = window.open('', 'escrow_foot_pop', status);
document.escrow_foot.method = "post";
document.escrow_foot.target = "escrow_foot_pop";
document.escrow_foot.action = "http://admin.kcp.co.kr/Modules/escrow/kcp_pop.jsp";
document.escrow_foot.submit();
}
</script>
<?php } ?>
<!-- <?php if ($default[de_card_use] || $default[de_iche_use]) { echo "결제대행사 : $default[de_card_pg]"; } ?> -->
</div>
<script>
/* 결제방법에 따른 처리 후 결제등록요청 실행 */
var settle_method = "";
function kcp_approval()
{
var f = document.sm_form;
var pf = document.fpersonalpayform;
// 필드체크
if(!payfield_check(pf))
return false;
// 금액체크
if(!payment_check(pf))
return false;
f.buyr_name.value = pf.pp_name.value;
f.buyr_mail.value = pf.pp_email.value;
f.buyr_tel1.value = pf.pp_hp.value;
f.buyr_tel2.value = pf.pp_hp.value;
f.rcvr_name.value = pf.pp_name.value;
f.rcvr_tel1.value = pf.pp_hp.value;
f.rcvr_tel2.value = pf.pp_hp.value;
f.rcvr_mail.value = pf.pp_email.value;
f.settle_method.value = settle_method;
var new_win = window.open("about:blank", "tar_opener", "scrollbars=yes,resizable=yes");
f.target = "tar_opener";
f.submit();
}
function fpersonalpayform_check()
{
var f = document.fpersonalpayform;
// 필드체크
if(!payfield_check(f))
return false;
// 금액체크
if(!payment_check(f))
return false;
if(f.res_cd.value != "0000") {
alert("결제등록요청 후 결제해 주십시오.");
return false;
}
f.submit();
}
// 결제폼 필드체크
function payfield_check(f)
{
var settle_case = document.getElementsByName("pp_settle_case");
var settle_check = false;
for (i=0; i<settle_case.length; i++)
{
if (settle_case[i].checked)
{
settle_check = true;
settle_method = settle_case[i].value;
break;
}
}
if (!settle_check)
{
alert("결제방식을 선택하십시오.");
return false;
}
return true;
}
// 결제체크
function payment_check(f)
{
var tot_amount = <?php echo (int)$pp['pp_amount']; ?>;
if (document.getElementById("pp_settle_iche")) {
if (document.getElementById("pp_settle_iche").checked) {
if (tot_amount < 150) {
alert("계좌이체는 150원 이상 결제가 가능합니다.");
return false;
}
}
}
if (document.getElementById("pp_settle_card")) {
if (document.getElementById("pp_settle_card").checked) {
if (tot_amount < 1000) {
alert("신용카드는 1000원 이상 결제가 가능합니다.");
return false;
}
}
}
if (document.getElementById("pp_settle_hp")) {
if (document.getElementById("pp_settle_hp").checked) {
if (tot_amount < 350) {
alert("휴대폰은 350원 이상 결제가 가능합니다.");
return false;
}
}
}
return true;
}
</script>
<?php
include_once(G4_MSHOP_PATH.'/_tail.php');
?>

View File

@ -0,0 +1,154 @@
<?php
include_once('./_common.php');
if(get_magic_quotes_gpc())
{
$_GET = array_add_callback("stripslashes", $_GET);
$_POST = array_add_callback("stripslashes", $_POST);
}
$_GET = array_add_callback("mysql_real_escape_string", $_GET);
$_POST = array_add_callback("mysql_real_escape_string", $_POST);
// 결제등록 완료 체크
if($_POST['tran_cd'] == '' || $_POST['enc_info'] == '' || $_POST['enc_data'] == '')
alert('결제등록 요청 후 주문해 주십시오.');
// 개인결제 정보
$pp_check = false;
$sql = " select * from {$g4['shop_personalpay_table']} where pp_id = '{$_POST['pp_id']}' and pp_use = '1' ";
$pp = sql_fetch($sql);
if(!$pp['pp_id'])
alert('개인결제 정보가 존재하지 않습니다.');
if($pp['pp_receipt_amount'] > 0)
alert('이미 결제하신 개인결제 내역입니다.');
$hash_data = md5($_POST['pp_id'].$_POST['good_mny'].$pp['pp_time']);
if($_POST['pp_id'] != get_session('ss_personalpay_id') || $hash_data != get_session('ss_personalpay_hash'))
die('개인결제 정보가 올바르지 않습니다.');
if ($pp_settle_case == "계좌이체")
{
include G4_MSHOP_PATH.'/kcp/pp_ax_hub.php';
$pp_tno = $tno;
$pp_receipt_amount = $amount;
$pp_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);
$pp_deposit_name = $pp_name;
$bank_name = iconv("cp949", "utf8", $bank_name);
$pp_bank_account = $bank_name;
$pg_amount = $amount;
}
else if ($pp_settle_case == "가상계좌")
{
include G4_MSHOP_PATH.'/kcp/pp_ax_hub.php';
$pp_tno = $tno;
$pp_receipt_amount = 0;
$bankname = iconv("cp949", "utf8", $bankname);
$depositor = iconv("cp949", "utf8", $depositor);
$pp_bank_account = $bankname.' '.$account.' '.$depositor;
$pp_deposit_name = $depositor;
$pg_amount = $amount;
}
else if ($pp_settle_case == "휴대폰")
{
include G4_MSHOP_PATH.'/kcp/pp_ax_hub.php';
$pp_tno = $tno;
$pp_receipt_amount = $amount;
$pp_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);
$pp_bank_account = $commid.' '.$mobile_no;
$pg_amount = $amount;
}
else if ($pp_settle_case == "신용카드")
{
include G4_MSHOP_PATH.'/kcp/pp_ax_hub.php';
$pp_tno = $tno;
$pp_receipt_amount = $amount;
$pp_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);
$card_name = iconv("cp949", "utf8", $card_name);
$pp_bank_account = $card_name;
$pg_amount = $amount;
}
else
{
die("od_settle_case Error!!!");
}
// 주문금액과 결제금액이 일치하는지 체크
if((int)$pp['pp_amount'] !== (int)$pg_amount) {
$cancel_msg = '결제금액 불일치';
include G4_MSHOP_PATH.'/kcp/pp_ax_hub_cancel.php'; // 결제취소처리
die("Receipt Amount Error");
}
if ($is_member)
$od_pwd = $member['mb_password'];
else
$od_pwd = sql_password($_POST['od_pwd']);
// 결제정보 입력
$sql = " update {$g4['shop_personalpay_table']}
set pp_tno = '$pp_tno',
pp_app_no = '$app_no',
pp_receipt_amount = '$pp_receipt_amount',
pp_settle_case = '$pp_settle_case',
pp_bank_account = '$pp_bank_account',
pp_deposit_name = '$pp_deposit_name',
pp_receipt_time = '$pp_receipt_time',
pp_receipt_ip = '{$_SERVER['REMOTE_ADDR']}'
where pp_id = '{$pp['pp_id']}' ";
$result = sql_query($sql, false);
// 결제정보 입력 오류시 kcp 결제 취소
if(!$result) {
if($tno) {
$cancel_msg = '결제정보 입력 오류';
include G4_MSHOP_PATH.'/kcp/pp_ax_hub_cancel.php'; // 결제취소처리
}
die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : {$_SERVER['PHP_SELF']}");
}
// 주문번호가 있으면 결제정보 반영
if($pp_receipt_amount > 0 && $pp['pp_id'] && $pp['od_id']) {
$od_escrow = 0;
if($escw_yn == 'Y')
$od_escrow = 1;
$sql = " update {$g4['shop_order_table']}
set od_receipt_amount = od_receipt_amount + '$pp_receipt_amount',
od_receipt_time = '$pp_receipt_time',
od_tno = '$pp_tno',
od_app_no = '$app_no',
od_escrow = '$od_escrow',
od_settle_case = '$pp_settle_case',
od_deposit_name = '$pp_deposit_name',
od_bank_account = '$pp_bank_account',
od_shop_memo = concat(od_shop_memo, \"\\n개인결제 ".$pp['pp_id']." 로 결제완료 - ".$pp_receipt_time."\")
where od_id = '{$pp['od_id']}' ";
$result = sql_query($sql, false);
// 결제정보 입력 오류시 kcp 결제 취소
if(!$result) {
if($tno) {
$cancel_msg = '결제정보 입력 오류';
include G4_MSHOP_PATH.'/kcp/pp_ax_hub_cancel.php'; // 결제취소처리
}
die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : {$_SERVER['PHP_SELF']}");
}
}
// 개인결제번호제거
set_session('ss_personalpay_id', '');
set_session('ss_personalpay_hash', '');
$uid = md5($pp['pp_id'].$pp['pp_time'].$_SERVER['REMOTE_ADDR']);
set_session('ss_personalpay_uid', $uid);
goto_url(G4_SHOP_URL.'/personalpayresult.php?pp_id='.$pp['pp_id'].'&amp;uid='.$uid);
?>

View File

@ -0,0 +1,195 @@
<?php
include_once('./_common.php');
$sql = "select * from {$g4['shop_personalpay_table']} where pp_id = '$pp_id' ";
$pp = sql_fetch($sql);
if (!$pp['pp_id'] || (md5($pp['pp_id'].$pp['pp_time'].$_SERVER['REMOTE_ADDR']) != get_session('ss_personalpay_uid'))) {
alert("조회하실 개인결제 내역이 없습니다.", G4_SHOP_URL);
}
// 결제방법
$settle_case = $pp['pp_settle_case'];
$g4['title'] = '개인결제상세내역';
include_once(G4_MSHOP_PATH.'/_head.php');
?>
<div id="sod_fin">
<p>개인결제번호 <strong><?php echo $pp_id; ?></strong></p>
<div id="sod_fin_view">
<h2>결제 정보</h2>
<?php
$misu = true;
if ($pp['pp_amount'] == $pp['pp_receipt_amount']) {
$wanbul = " (완불)";
$misu = false; // 미수금 없음
}
else
{
$wanbul = display_price($pp['pp_receipt_amount']);
}
$misu_amount = $pp['pp_amount'] - $pp['pp_receipt_amount'];
// 결제정보처리
if($pp['pp_receipt_amount'] > 0)
$pp_receipt_amount = display_price($pp['pp_receipt_amount']);
else
$pp_receipt_amount = '아직 입금되지 않았거나 입금정보를 입력하지 못하였습니다.';
$app_no_subj = '';
$disp_bank = true;
$disp_receipt = false;
if($pp['pp_settle_case'] == '신용카드') {
$app_no_subj = '승인번호';
$app_no = $pp['pp_app_no'];
$disp_bank = false;
$disp_receipt = true;
} else if($pp['pp_settle_case'] == '휴대폰') {
$app_no_subj = '휴대폰번호';
$app_no = $pp['pp_bank_account'];
$disp_bank = false;
$disp_receipt = true;
} else if($pp['pp_settle_case'] == '가상계좌' || $pp['pp_settle_case'] == '계좌이체') {
$app_no_subj = 'KCP 거래번호';
$app_no = $pp['pp_tno'];
}
?>
<section id="sod_fin_pay">
<h3>결제정보</h3>
<table class="basic_tbl">
<colgroup>
<col class="grid_3">
<col>
</colgroup>
<tbody>
<?php if($pp['od_id']) { ?>
<tr>
<th scope="row">주문번호</th>
<td><?php echo $pp['od_id']; ?></td>
</tr>
<?php } ?>
<tr>
<th scope="row">결제방식</th>
<td><?php echo $pp['pp_settle_case']; ?></td>
</tr>
<?php if($pp_receipt_amount > 0) { ?>
<tr>
<th scope="row">결제금액</th>
<td><?php echo $pp_receipt_amount; ?></td>
</tr>
<tr>
<th scope="row">결제일시</th>
<td><?php echo $pp['pp_receipt_time']; ?></td>
</tr>
<?php
}
// 승인번호, 휴대폰번호, KCP 거래번호
if($app_no_subj)
{
?>
<tr>
<th scope="row"><?php echo $app_no_subj; ?></th>
<td><?php echo $app_no; ?></td>
</tr>
<?php
}
// 계좌정보
if($disp_bank)
{
?>
<tr>
<th scope="row">입금자명</th>
<td><?php echo $pp['pp_deposit_name']; ?></td>
</tr>
<tr>
<th scope="row">입금계좌</th>
<td><?php echo $pp['pp_bank_account']; ?></td>
</tr>
<?php
}
if($disp_receipt) {
?>
<tr>
<th scope="row">영수증</th>
<td>
<?php
if($pp['pp_settle_case'] == '휴대폰')
{
?>
<a href="javascript:;" onclick="window.open('https://admin.kcp.co.kr/Modules/Bill/ADSA_MCASH_N_Receipt.jsp?a_trade_no=<?php echo $pp['pp_tno']; ?>', 'winreceipt', 'width=500,height=690')">영수증 출력</a>
<?php
}
if($pp['pp_settle_case'] == '신용카드')
{
?>
<a href="javascript:;" onclick="window.open('http://admin.kcp.co.kr/Modules/Sale/Card/ADSA_CARD_BILL_Receipt.jsp?c_trade_no=<?php echo $pp['pp_tno']; ?>', 'winreceipt', 'width=620,height=800')">영수증 출력</a>
<?php
}
?>
<td>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</section>
</div>
<section id="sod_fin_tot">
<h2>결제합계</h2>
<ul>
<li>
총 주문액
<strong><?php echo display_price($pp['pp_amount']); ?></strong>
</li>
<?php
if ($misu_amount > 0) {
echo '<li>';
echo '미결제액'.PHP_EOL;
echo '<strong>'.display_price($misu_amount).'</strong>';
echo '</li>';
}
?>
<li id="alrdy">
결제액
<strong><?php echo $wanbul; ?></strong>
</li>
</ul>
</section>
<?php if ($pp['pp_settle_case'] == '가상계좌' && $default['de_card_test'] && $is_admin) {
preg_match("/(\s[^\s]+\s)/", $pp['pp_bank_account'], $matchs);
$deposit_no = trim($matchs[1]);
?>
<fieldset>
<legend>모의입금처리</legend>
<p>관리자가 가상계좌 테스트를 한 경우에만 보입니다.</p>
<form method="post" action="http://devadmin.kcp.co.kr/Modules/Noti/TEST_Vcnt_Noti_Proc.jsp" target="_blank">
<input type="text" name="e_trade_no" value="<?php echo $pp['pp_tno']; ?>" size="80"><br />
<input type="text" name="deposit_no" value="<?php echo $deposit_no; ?>" size="80"><br />
<input type="text" name="req_name" value="<?php echo $pp['pp_deposit_name']; ?>" size="80"><br />
<input type="text" name="noti_url" value="<?php echo G4_SHOP_URL; ?>/settle_kcp_common.php" size="80"><br /><br />
<input type="submit" value="입금통보 테스트">
</form>
</fieldset>
<?php } ?>
</div>
<!-- } 개인결제상세내역 끝 -->
<?php
include_once(G4_MSHOP_PATH.'/_tail.php');
?>

View File

@ -47,6 +47,7 @@ include_once(G4_LIB_PATH.'/popular.lib.php');
<?php } ?>
<li><a href="<?php echo G4_SHOP_URL; ?>/mypage.php">마이페이지</a></li>
<li><a href="<?php echo G4_SHOP_URL; ?>/cart.php">장바구니</a></li>
<li><a href="<?php echo G4_SHOP_URL; ?>/personalpay.php">개인결제</a></li>
<li><a href="<?php echo G4_URL; ?>/">커뮤니티</a></li>
</ul>

View File

@ -0,0 +1,38 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<link rel="stylesheet" href="<?php echo G4_MSHOP_SKIN_URL; ?>/style.css">
<!-- 개인결제진열 시작 { -->
<?php
for ($i=1; $row=sql_fetch_array($result); $i++) {
if ($list_mod >= 2) { // 1줄 이미지 : 2개 이상
if ($i%$list_mod == 0) $sct_last = 'sct_last'; // 줄 마지막
else if ($i%$list_mod == 1) $sct_last = 'sct_clear'; // 줄 첫번째
else $sct_last = '';
} else { // 1줄 이미지 : 1개
$sct_last = 'sct_clear';
}
if ($i == 1) {
echo "<ul class=\"sct sct_10\">\n";
}
$href = G4_SHOP_URL.'/personalpayform.php?pp_id='.$row['pp_id'].'&amp;page='.$page;
?>
<li class="sct_li<?php echo $sct_last; ?>" style="width:<?php echo $img_width; ?>px">
<a href="<?php echo $href; ?>" class="sct_a">
<span class="sct_img">개인결제 이미지</span>
<b><?php echo get_text($row['pp_name']).'님 개인결제'; ?></b>
<span class="sct_cost"><?php echo display_price($row['pp_amount']); ?></span>
</a>
</li>
<?php
}
if ($i > 1) echo "</ul>\n";
if($i == 1) echo "<p class=\"sct_noitem\">등록된 개인결제가 없습니다.</p>\n";
?>
<!-- } 개인결제진열 끝 -->

View File

@ -326,7 +326,7 @@ else if ($od_settle_case == "가상계좌")
$bankname = iconv("cp949", "utf8", $bankname);
$depositor = iconv("cp949", "utf8", $depositor);
$od_bank_account = $bankname.' '.$account.' '.$depositor;
$od_deposit_name = $od_name;
$od_deposit_name = $depositor;
$pg_amount = $amount;
}
else if ($od_settle_case == "휴대폰")

72
shop/personalpay.php Normal file
View File

@ -0,0 +1,72 @@
<?php
include_once('./_common.php');
if (G4_IS_MOBILE) {
include_once(G4_MSHOP_PATH.'/personalpay.php');
return;
}
$g4['title'] = '개인결제 리스트';
include_once('./_head.php');
?>
<!-- 상품 목록 시작 { -->
<div id="sct">
<?php
// 리스트 유형별로 출력
$list_file = G4_SHOP_SKIN_PATH.'/personalpay.skin.php';
if (file_exists($list_file)) {
$list_mod = 3;
$list_row = 5;
$img_width = 230;
$img_height = 230;
$sql_common = " from {$g4['shop_personalpay_table']}
where pp_use = '1'
and pp_receipt_amount = '0' ";
// 총몇개 = 한줄에 몇개 * 몇줄
$items = $list_mod * $list_row;
$sql = "select COUNT(*) as cnt $sql_common ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
// 전체 페이지 계산
$total_page = ceil($total_count / $items);
// 페이지가 없으면 첫 페이지 (1 페이지)
if ($page == "") $page = 1;
// 시작 레코드 구함
$from_record = ($page - 1) * $items;
$sql = " select *
$sql_common
order by pp_id desc
limit $from_record, $items";
$result = sql_query($sql);
include $list_file;
}
else
{
$i = 0;
$error = '<p class="sct_nofile">personalpay.skin.php 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</p>';
}
if ($i==0)
{
echo '<div><p class="sct_noitem">등록된 개인결제가 없습니다.</p></div>';
}
?>
<?php
echo get_paging($config['cf_write_pages'], $page, $total_page, $_SERVER['PHP_SELF'].'?'.$qstr.'&amp;page=');
?>
</div>
<!-- } 상품 목록 끝 -->
<?php
include_once('./_tail.php');
?>

577
shop/personalpayform.php Normal file
View File

@ -0,0 +1,577 @@
<?php
include_once('./_common.php');
if (G4_IS_MOBILE) {
include_once(G4_MSHOP_PATH.'/personalpayform.php');
return;
}
$sql = " select * from {$g4['shop_personalpay_table']} where pp_id = '$pp_id' and pp_use = '1' and pp_amount > 0 ";
$pp = sql_fetch($sql);
if(!$pp['pp_id'])
alert('개인결제 정보가 존재하지 않습니다.');
if($pp['pp_receipt_amount'] > 0)
alert('이미 결제하신 개인결제 내역입니다.');
$g4['title'] = $pp['pp_name'].'님 개인결제';
include_once('./_head.php');
$action_url = G4_HTTPS_SHOP_URL.'/personalpayformupdate.php';
if (file_exists('./settle_'.$default['de_card_pg'].'.inc.php')) {
include './settle_'.$default['de_card_pg'].'.inc.php';
}
// 개인결제 체크를 위한 hash
$hash_data = md5($pp['pp_id'].$pp['pp_amount'].$pp['pp_time']);
set_session('ss_personalpay_id', $pp['pp_id']);
set_session('ss_personalpay_hash', $hash_data);
?>
<?php
/* ============================================================================== */
/* = Javascript source Include = */
/* = -------------------------------------------------------------------------- = */
/* = ※ 필수 = */
/* = -------------------------------------------------------------------------- = */
?>
<script src="<?php echo $g_conf_js_url; ?>"></script>
<?php
/* = -------------------------------------------------------------------------- = */
/* = Javascript source Include END = */
/* ============================================================================== */
?>
<script>
function CheckPayplusInstall()
{
StartSmartUpdate();
if(ChkBrowser())
{
if(document.Payplus.object != null) {
document.getElementById("display_setup_message_top").style.display = "none" ;
document.getElementById("display_setup_message").style.display = "none" ;
document.getElementById("display_pay_button").style.display = "block" ;
}
}
else
{
setTimeout("init_pay_button();",300);
}
}
/* Payplus Plug-in 실행 */
function jsf__pay( form )
{
var RetVal = false;
/* Payplus Plugin 실행 */
if ( MakePayMessage( form ) == true )
{
openwin = window.open( "./kcp/proc_win.html", "proc_win", "width=449, height=209, top=300, left=300" );
RetVal = true ;
}
else
{
/* res_cd와 res_msg변수에 해당 오류코드와 오류메시지가 설정됩니다.
ex) 고객이 Payplus Plugin에서 취소 버튼 클릭시 res_cd=3001, res_msg=사용자 취소
값이 설정됩니다.
*/
res_cd = document.fpersonalpayform.res_cd.value ;
res_msg = document.fpersonalpayform.res_msg.value ;
}
return RetVal ;
}
// Payplus Plug-in 설치 안내
function init_pay_button()
{
if( GetPluginObject() == null ){
document.getElementById("display_setup_message_top").style.display = "block" ;
document.getElementById("display_setup_message").style.display = "block" ;
document.getElementById("display_pay_button").style.display = "none" ;
document.getElementById("display_setup_message").scrollIntoView();
}
else{
document.getElementById("display_setup_message_top").style.display = "none" ;
document.getElementById("display_setup_message").style.display = "none" ;
document.getElementById("display_pay_button").style.display = "block" ;
}
}
function get_intall_file()
{
document.location.href = GetInstallFile();
return false;
}
</script>
<!-- Payplus Plug-in 설치 안내 -->
<p id="display_setup_message_top" style="display:block">
<strong>결제안내</strong>
<span class="red">결제를 하시려면 상단의 노란색 표시줄을 클릭</span>하시거나, <a href="https://pay.kcp.co.kr/plugin_new/file/KCPPluginSetup.exe" onclick="return get_intall_file();"><span class="bold">[수동설치]</span></a>를 눌러 Payplus Plug-in을 설치하시기 바랍니다.<br>
[수동설치]를 눌러 설치하신 경우 <span class="red bold">새로고침(F5)키</span>를 눌러 진행하시기 바랍니다.
</p>
<form name="fpersonalpayform" method="post" action="<?php echo $action_url; ?>" onsubmit="return fpersonalpayform_check(this);" autocomplete="off">
<input type="hidden" name="pp_id" value="<?php echo $pp['pp_id']; ?>">
<?php
/* ============================================================================== */
/* = 2. 가맹점 필수 정보 설정 = */
/* = -------------------------------------------------------------------------- = */
/* = ※ 필수 - 결제에 반드시 필요한 정보입니다. = */
/* = -------------------------------------------------------------------------- = */
// 요청종류 : 승인(pay)/취소,매입(mod) 요청시 사용
?>
<input type="hidden" name="req_tx" value="pay">
<input type="hidden" name="site_cd" value="<?php echo $default['de_kcp_mid']; ?>">
<input type="hidden" name="site_key" value="<?php echo $default['de_kcp_site_key']; ?>">
<input type="hidden" name="site_name" value="<?php echo $default['de_admin_company_name']; ?>">
<?php
/*
할부옵션 : Payplus Plug-in에서 카드결제시 최대로 표시할 할부개월 수를 설정합니다.(0 ~ 18 까지 설정 가능)
※ 주의 - 할부 선택은 결제금액이 50,000원 이상일 경우에만 가능, 50000원 미만의 금액은 일시불로만 표기됩니다
예) value 값을 "5" 로 설정했을 경우 => 카드결제시 결제창에 일시불부터 5개월까지 선택가능
*/
?>
<input type="hidden" name="pay_method" value="">
<input type="hidden" name="ordr_idxx" value="<?php echo $pp['pp_id']; ?>">
<input type="hidden" name="good_name" value="<?php echo $pp['pp_name'].'님 개인결제'; ?>">
<input type="hidden" name="good_mny" value="<?php echo $pp['pp_amount']; ?>">
<input type="hidden" name="buyr_name" value="">
<input type="hidden" name="buyr_mail" value="">
<input type="hidden" name="buyr_tel1" value="">
<input type="hidden" name="buyr_tel2" 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="">
<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="quotaopt" value="12">
<!-- 필수 항목 : 결제 금액/화폐단위 -->
<input type="hidden" name="currency" value="WON">
<?php
/* = -------------------------------------------------------------------------- = */
/* = 2. 가맹점 필수 정보 설정 END = */
/* ============================================================================== */
?>
<?php
/* ============================================================================== */
/* = 3. Payplus Plugin 필수 정보(변경 불가) = */
/* = -------------------------------------------------------------------------- = */
/* = 결제에 필요한 주문 정보를 입력 및 설정합니다. = */
/* = -------------------------------------------------------------------------- = */
?>
<!-- PLUGIN 설정 정보입니다(변경 불가) -->
<input type="hidden" name="module_type" value="01">
<!-- 복합 포인트 결제시 넘어오는 포인트사 코드 : OK캐쉬백(SCSK), 베네피아 복지포인트(SCWB) -->
<input type="hidden" name="epnt_issu" value="">
<!--
※ 필 수
필수 항목 : Payplus Plugin에서 값을 설정하는 부분으로 반드시 포함되어야 합니다
값을 설정하지 마십시오
-->
<input type="hidden" name="res_cd" value="">
<input type="hidden" name="res_msg" value="">
<input type="hidden" name="tno" value="">
<input type="hidden" name="trace_no" value="">
<input type="hidden" name="enc_info" value="">
<input type="hidden" name="enc_data" value="">
<input type="hidden" name="ret_pay_method" value="">
<input type="hidden" name="tran_cd" value="">
<input type="hidden" name="bank_name" value="">
<input type="hidden" name="bank_issu" value="">
<input type="hidden" name="use_pay_method" value="">
<!-- 현금영수증 관련 정보 : Payplus Plugin 에서 설정하는 정보입니다 -->
<input type="hidden" name="cash_tsdtime" value="">
<input type="hidden" name="cash_yn" value="">
<input type="hidden" name="cash_authno" value="">
<input type="hidden" name="cash_tr_code" value="">
<input type="hidden" name="cash_id_info" value="">
<!-- 2012년 8월 18일 정자상거래법 개정 관련 설정 부분 -->
<!-- 제공 기간 설정 0:일회성 1:기간설정(ex 1:2012010120120131) -->
<!--
2012.08.18 부터 개정 시행되는 '전자상거래 등에서의 소비자보호에 관한 법률'에 따른 코드 변경
이용기간이 제한되는 컨텐츠 상품이나 정기 과금 상품 등에 한하여 '용역의 제공기간'을
표기/적용하여야 하며 이와 무관한 실물 배송상품 등의 결제에는 해당되지 않습니다.
0 : 일반결제
good_expr의 나머지 적용 방식에 대해서는 KCP에서 제공하는 매뉴얼을 참고해 주세요.
-->
<input type="hidden" name="good_expr" value="0">
<!-- 에스크로 항목 -->
<!-- 에스크로 사용 여부 : 반드시 Y 로 세팅 -->
<input type="hidden" name="escw_used" value="Y">
<!-- 에스크로 결제처리 모드 : 에스크로: Y, 일반: N, KCP 설정 조건: O -->
<input type="hidden" name="pay_mod" value="<?php echo ($default['de_escrow_use']?"O":"N"); ?>">
<!-- 배송 소요일 : 예상 배송 소요일을 입력 -->
<input type="hidden" name="deli_term" value="03">
<!-- 장바구니 상품 개수 : 장바구니에 담겨있는 상품의 개수를 입력 -->
<input type="hidden" name="bask_cntx" value="1">
<!-- 장바구니 상품 상세 정보 (자바 스크립트 샘플(create_goodInfo()) 참고) -->
<input type="hidden" name="good_info" value="<?php echo $pp['pp_name'].'님 개인결제'; ?>">
<?php
/* = -------------------------------------------------------------------------- = */
/* = 3. Payplus Plugin 필수 정보 END = */
/* ============================================================================== */
?>
<?php
/* ============================================================================== */
/* = 4. 옵션 정보 = */
/* = -------------------------------------------------------------------------- = */
/* = ※ 옵션 - 결제에 필요한 추가 옵션 정보를 입력 및 설정합니다. = */
/* = -------------------------------------------------------------------------- = */
/* PayPlus에서 보이는 신용카드사 삭제 파라미터 입니다
※ 해당 카드를 결제창에서 보이지 않게 하여 고객이 해당 카드로 결제할 수 없도록 합니다. (카드사 코드는 매뉴얼을 참고)
<input type="hidden" name="not_used_card" value="CCPH:CCSS:CCKE:CCHM:CCSH:CCLO:CCLG:CCJB:CCHN:CCCH"> */
/* 신용카드 결제시 OK캐쉬백 적립 여부를 묻는 창을 설정하는 파라미터 입니다
OK캐쉬백 포인트 가맹점의 경우에만 창이 보여집니다
<input type="hidden" name="save_ocb" value="Y"> */
/* 고정 할부 개월 수 선택
value값을 "7" 로 설정했을 경우 => 카드결제시 결제창에 할부 7개월만 선택가능
<input type="hidden" name="fix_inst" value="07"> */
/* 무이자 옵션
※ 설정할부 (가맹점 관리자 페이지에 설정 된 무이자 설정을 따른다) - "" 로 설정
※ 일반할부 (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="used_card_YN" value="Y">
/* 사용카드 설정 파라미터 입니다. (해당 카드만 결제창에 보이게 설정하는 파라미터입니다. used_card_YN 값이 Y일때 적용됩니다.
/<input type="hidden" name="used_card" value="CCBC:CCKM:CCSS">
/* 해외카드 구분하는 파라미터 입니다.(해외비자, 해외마스터, 해외JCB로 구분하여 표시)
<input type="hidden" name="used_card_CCXX" value="Y">
/* 가상계좌 은행 선택 파라미터
※ 해당 은행을 결제창에서 보이게 합니다.(은행코드는 매뉴얼을 참조) */
?>
<input type="hidden" name="wish_vbank_list" value="05:03:04:07:11:23:26:32:34:81:71">
<?php
/* 가상계좌 입금 기한 설정하는 파라미터 - 발급일 + 3일
<input type="hidden" name="vcnt_expire_term" value="3"> */
/* 가상계좌 입금 시간 설정하는 파라미터
HHMMSS형식으로 입력하시기 바랍니다
설정을 안하시는경우 기본적으로 23시59분59초가 세팅이 됩니다
<input type="hidden" name="vcnt_expire_term_time" value="120000"> */
/* 포인트 결제시 복합 결제(신용카드+포인트) 여부를 결정할 수 있습니다.- N 일경우 복합결제 사용안함
<input type="hidden" name="complex_pnt_yn" value="N"> */
/* 문화상품권 결제시 가맹점 고객 아이디 설정을 해야 합니다.(필수 설정)
<input type="hidden" name="tk_shop_id" value=""> */
/* 현금영수증 등록 창을 출력 여부를 설정하는 파라미터 입니다
※ Y : 현금영수증 등록 창 출력
※ N : 현금영수증 등록 창 출력 안함
※ 주의 : 현금영수증 사용 시 KCP 상점관리자 페이지에서 현금영수증 사용 동의를 하셔야 합니다 */
?>
<input type="hidden" name="disp_tax_yn" value="N">
<?php
/* 결제창에 가맹점 사이트의 로고를 플러그인 좌측 상단에 출력하는 파라미터 입니다
업체의 로고가 있는 URL을 정확히 입력하셔야 하며, 최대 150 X 50 미만 크기 지원
※ 주의 : 로고 용량이 150 X 50 이상일 경우 site_name 값이 표시됩니다. */
?>
<input type="hidden" name="site_logo" value="">
<?php
/* 결제창 영문 표시 파라미터 입니다. 영문을 기본으로 사용하시려면 Y로 세팅하시기 바랍니다
2010-06월 현재 신용카드와 가상계좌만 지원됩니다
<input type="hidden" name="eng_flag" value="Y"> */
?>
<?php
/* skin_indx 값은 스킨을 변경할 수 있는 파라미터이며 총 7가지가 지원됩니다.
변경을 원하시면 1부터 7까지 값을 넣어주시기 바랍니다. */
?>
<input type="hidden" name="skin_indx" value="1">
<?php
/* 상품코드 설정 파라미터 입니다.(상품권을 따로 구분하여 처리할 수 있는 옵션기능입니다.)
<input type="hidden" name="good_cd" value=""> */
/* = -------------------------------------------------------------------------- = */
/* = 4. 옵션 정보 END = */
/* ============================================================================== */
?>
<section id="sod_frm_pay">
<h2>개인결제정보</h2>
<table class="frm_tbl">
<tbody>
<tr>
<th>결제금액</th>
<td><?php echo display_price($pp['pp_amount']); ?></td>
</tr>
<tr>
<th scope="row"><label for="pp_name">이름</label></th>
<td><input type="text" name="pp_name" value="<?php echo $pp['pp_name']; ?>" id="pp_name" required class="required frm_input"></td>
</tr>
<tr>
<th scope="row"><label for="pp_email">이메일</label></th>
<td><input type="text" name="pp_email" value="<?php echo $member['mb_email']; ?>" id="pp_email" required class="required frm_input"></td>
</tr>
<tr>
<th scope="row"><label for="pp_hp">휴대폰</label></th>
<td><input type="text" name="pp_hp" value="<?php echo $member['mb_hp']; ?>" id="pp_hp" class="frm_input"></td>
</tr>
</tbody>
</table>
<?php
if (!$default['de_card_point'])
echo '<p><strong>무통장입금</strong> 이외의 결제 수단으로 결제하시는 경우 포인트를 적립해드리지 않습니다.</p>';
$multi_settle == 0;
$checked = '';
$escrow_title = "";
if ($default['de_escrow_use']) {
$escrow_title = "에스크로 ";
}
if ($default['de_vbank_use'] || $default['de_bank_use'] || $default['de_bank_use'] || $default['de_bank_use']) {
echo '<fieldset id="sod_frm_paysel">';
echo '<legend>결제방법 선택</legend>';
}
// 가상계좌 사용
if ($default['de_vbank_use']) {
$multi_settle++;
echo '<input type="radio" id="pp_settle_vbank" name="pp_settle_case" value="가상계좌" '.$checked.'> <label for="pp_settle_vbank">'.$escrow_title.'가상계좌</label>'.PHP_EOL;
$checked = '';
}
// 계좌이체 사용
if ($default['de_iche_use']) {
$multi_settle++;
echo '<input type="radio" id="pp_settle_iche" name="pp_settle_case" value="계좌이체" '.$checked.'> <label for="pp_settle_iche">'.$escrow_title.'계좌이체</label>'.PHP_EOL;
$checked = '';
}
// 휴대폰 사용
if ($default['de_hp_use']) {
$multi_settle++;
echo '<input type="radio" id="pp_settle_hp" name="pp_settle_case" value="휴대폰" '.$checked.'> <label for="pp_settle_hp">휴대폰</label>'.PHP_EOL;
$checked = '';
}
// 신용카드 사용
if ($default['de_card_use']) {
$multi_settle++;
echo '<input type="radio" id="pp_settle_card" name="pp_settle_case" value="신용카드" '.$checked.'> <label for="pp_settle_card">신용카드</label>'.PHP_EOL;
$checked = '';
}
if ($default['de_vbank_use'] || $default['de_bank_use'] || $default['de_bank_use'] || $default['de_bank_use']) {
echo '</fieldset>';
}
if ($multi_settle == 0)
echo '<p>결제할 방법이 없습니다.<br>운영자에게 알려주시면 감사하겠습니다.</p>';
?>
</section>
<!-- Payplus Plug-in 설치 안내 시작 { -->
<p id="display_setup_message" style="display:block">
<span class="red">결제를 계속 하시려면 상단의 노란색 표시줄을 클릭</span>하시거나 <a href="https://pay.kcp.co.kr/plugin_new/file/KCPPluginSetup.exe" onclick="return get_intall_file();"><b><u>[수동설치]</u></b></a>를 눌러 다운로드 된 Payplus Plug-in을 설치하시기 바랍니다.<br>
[수동설치]를 눌러 설치하신 경우 <span class="red bold">새로고침(F5)키</span>를 눌러 진행하시기 바랍니다.<br>
새로고침(F5) 한후에도 계속 설치파일이 다운로드 되거나 결제가 되지 않으면 브라우저를 새로 열어서 주문해 주시기 바랍니다.<br>
브라우저가 익스플로러가 아닌 경우 Payplus Plug-in 설치에 문제가 있을수 있음을 알려 드립니다.
</p>
<!-- } Payplus Plug-in 설치 안내 끝 -->
<div id="display_pay_button" class="btn_confirm" style="display:none">
<input type="submit" value="결제하기" class="btn_submit">
<a href="javascript:history.go(-1);" class="btn01">취소</a>
</div>
</form>
<?php if ($default['de_escrow_use']) { ?>
<!-- 에스크로 안내 시작 { -->
<section id="sod_frm_escrow">
<h2>에스크로 안내</h2>
<form name="escrow_foot" method="post" action="http://admin.kcp.co.kr/Modules/escrow/kcp_pop.jsp">
<input type="hidden" name="site_cd" value="SR<?php echo $default['de_kcp_mid']; ?>">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align='center'><img src="<?php echo G4_SHOP_URL; ?>/img/marks_escrow/escrow_foot.gif" width="290" height="92" border="0" usemap="#Map"></td>
</tr>
<tr>
<td style='line-height:150%;'>
<br>
<strong>에스크로(escrow) 제도란?</strong>
<br>상거래 시에, 판매자와 구매자의 사이에 신뢰할 수 있는 중립적인 제삼자(여기서는 <a href='http://kcp.co.kr' target='_blank'>KCP</a>)가 중개하여
금전 또는 물품을 거래를 하도록 하는 것, 또는 그러한 서비스를 말한다. 거래의 안전성을 확보하기 위해 이용된다.
(2006.4.1 전자상거래 소비자보호법에 따른 의무 시행)
<br><br>
5만원 이상의 현금 거래에만 해당(에스크로 결제를 선택했을 경우에만 해당)되며,
신용카드로 구매하는 거래, 배송이 필요하지 않은 재화 등을 구매하는 거래(컨텐츠 등),
5만원 미만의 현금 거래에는 해당되지 않는다.
<br>
<br>
</td>
</tr>
</table>
<map name="Map" id="Map">
<area shape="rect" coords="5,62,74,83" href="javascript:escrow_foot_check()" alt="가입사실확인">
</map>
</form>
</section>
<script>
function escrow_foot_check()
{
var status = "width=500 height=450 menubar=no,scrollbars=no,resizable=no,status=no";
var obj = window.open('', 'escrow_foot_pop', status);
document.escrow_foot.method = "post";
document.escrow_foot.target = "escrow_foot_pop";
document.escrow_foot.action = "http://admin.kcp.co.kr/Modules/escrow/kcp_pop.jsp";
document.escrow_foot.submit();
}
</script>
<!-- } 에스크로 안내 끝 -->
<?php } ?>
<script>
function fpersonalpayform_check(f)
{
var settle_case = document.getElementsByName("pp_settle_case");
var settle_check = false;
var settle_method = "";
for (i=0; i<settle_case.length; i++)
{
if (settle_case[i].checked)
{
settle_check = true;
settle_method = settle_case[i].value;
break;
}
}
if (!settle_check)
{
alert("결제방식을 선택하십시오.");
return false;
}
var tot_amount = <?php echo (int)$pp['pp_amount']; ?>;
if (document.getElementById("pp_settle_iche")) {
if (document.getElementById("pp_settle_iche").checked) {
if (tot_amount < 150) {
alert("계좌이체는 150원 이상 결제가 가능합니다.");
return false;
}
}
}
if (document.getElementById("pp_settle_card")) {
if (document.getElementById("pp_settle_card").checked) {
if (tot_amount < 1000) {
alert("신용카드는 1000원 이상 결제가 가능합니다.");
return false;
}
}
}
if (document.getElementById("pp_settle_hp")) {
if (document.getElementById("pp_settle_hp").checked) {
if (tot_amount < 350) {
alert("휴대폰은 350원 이상 결제가 가능합니다.");
return false;
}
}
}
// pay_method 설정
switch(settle_method)
{
case "계좌이체":
f.pay_method.value = "010000000000";
break;
case "가상계좌":
f.pay_method.value = "001000000000";
break;
case "휴대폰":
f.pay_method.value = "000010000000";
break;
case "신용카드":
f.pay_method.value = "100000000000";
break;
default:
f.pay_method.value = "무통장";
break;
}
// kcp 결제정보설정
f.buyr_name.value = f.pp_name.value;
f.buyr_mail.value = f.pp_email.value;
f.buyr_tel1.value = f.pp_hp.value;
f.buyr_tel2.value = f.pp_hp.value;
f.rcvr_name.value = f.pp_name.value;
f.rcvr_tel1.value = f.pp_hp.value;
f.rcvr_tel2.value = f.pp_hp.value;
f.rcvr_mail.value = f.pp_email.value;
if(jsf__pay( f )) {
return true;
} else {
return false;
}
}
</script>
<?php
include_once('./_tail.php');
?>
<script>
CheckPayplusInstall();
</script>

View File

@ -0,0 +1,172 @@
<?php
include_once('./_common.php');
if(get_magic_quotes_gpc())
{
$_GET = array_add_callback("stripslashes", $_GET);
$_POST = array_add_callback("stripslashes", $_POST);
}
$_GET = array_add_callback("mysql_real_escape_string", $_GET);
$_POST = array_add_callback("mysql_real_escape_string", $_POST);
// 개인결제 정보
$pp_check = false;
$sql = " select * from {$g4['shop_personalpay_table']} where pp_id = '{$_POST['pp_id']}' and pp_use = '1' ";
$pp = sql_fetch($sql);
if(!$pp['pp_id'])
alert('개인결제 정보가 존재하지 않습니다.');
if($pp['pp_receipt_amount'] > 0)
alert('이미 결제하신 개인결제 내역입니다.');
$hash_data = md5($_POST['pp_id'].$_POST['good_mny'].$pp['pp_time']);
if($_POST['pp_id'] != get_session('ss_personalpay_id') || $hash_data != get_session('ss_personalpay_hash'))
die('개인결제 정보가 올바르지 않습니다.');
if ($pp_settle_case == "계좌이체")
{
include G4_SHOP_PATH.'/kcp/pp_ax_hub.php';
$pp_tno = $tno;
$pp_receipt_amount = $amount;
$pp_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);
$pp_deposit_name = $pp_name;
$bank_name = iconv("cp949", "utf8", $bank_name);
$pp_bank_account = $bank_name;
$pg_amount = $amount;
}
else if ($pp_settle_case == "가상계좌")
{
include G4_SHOP_PATH.'/kcp/pp_ax_hub.php';
$pp_tno = $tno;
$pp_receipt_amount = 0;
$bankname = iconv("cp949", "utf8", $bankname);
$depositor = iconv("cp949", "utf8", $depositor);
$pp_bank_account = $bankname.' '.$account.' '.$depositor;
$pp_deposit_name = $depositor;
$pg_amount = $amount;
}
else if ($pp_settle_case == "휴대폰")
{
include G4_SHOP_PATH.'/kcp/pp_ax_hub.php';
$pp_tno = $tno;
$pp_receipt_amount = $amount;
$pp_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);
$pp_bank_account = $commid.' '.$mobile_no;
$pg_amount = $amount;
}
else if ($pp_settle_case == "신용카드")
{
include G4_SHOP_PATH.'/kcp/pp_ax_hub.php';
$pp_tno = $tno;
$pp_receipt_amount = $amount;
$pp_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);
$card_name = iconv("cp949", "utf8", $card_name);
$pp_bank_account = $card_name;
$pg_amount = $amount;
}
else
{
die("od_settle_case Error!!!");
}
// 주문금액과 결제금액이 일치하는지 체크
if((int)$pp['pp_amount'] !== (int)$pg_amount) {
$cancel_msg = '결제금액 불일치';
include G4_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php'; // 결제취소처리
die("Receipt Amount Error");
}
// 결제정보 입력
$sql = " update {$g4['shop_personalpay_table']}
set pp_tno = '$pp_tno',
pp_app_no = '$app_no',
pp_receipt_amount = '$pp_receipt_amount',
pp_settle_case = '$pp_settle_case',
pp_bank_account = '$pp_bank_account',
pp_deposit_name = '$pp_deposit_name',
pp_receipt_time = '$pp_receipt_time',
pp_receipt_ip = '{$_SERVER['REMOTE_ADDR']}'
where pp_id = '{$pp['pp_id']}' ";
$result = sql_query($sql, false);
// 결제정보 입력 오류시 kcp 결제 취소
if(!$result) {
if($tno) {
$cancel_msg = '결제정보 입력 오류';
include G4_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php'; // 결제취소처리
}
die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : {$_SERVER['PHP_SELF']}");
}
// 주문번호가 있으면 결제정보 반영
if($pp_receipt_amount > 0 && $pp['pp_id'] && $pp['od_id']) {
$od_escrow = 0;
if($escw_yn == 'Y')
$od_escrow = 1;
$sql = " update {$g4['shop_order_table']}
set od_receipt_amount = od_receipt_amount + '$pp_receipt_amount',
od_receipt_time = '$pp_receipt_time',
od_tno = '$pp_tno',
od_app_no = '$app_no',
od_escrow = '$od_escrow',
od_settle_case = '$pp_settle_case',
od_deposit_name = '$pp_deposit_name',
od_bank_account = '$pp_bank_account',
od_shop_memo = concat(od_shop_memo, \"\\n개인결제 ".$pp['pp_id']." 로 결제완료 - ".$pp_receipt_time."\")
where od_id = '{$pp['od_id']}' ";
$result = sql_query($sql, false);
// 결제정보 입력 오류시 kcp 결제 취소
if(!$result) {
if($tno) {
$cancel_msg = '결제정보 입력 오류';
include G4_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php'; // 결제취소처리
}
die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : {$_SERVER['PHP_SELF']}");
}
}
// 개인결제번호제거
set_session('ss_personalpay_id', '');
set_session('ss_personalpay_hash', '');
$uid = md5($pp['pp_id'].$pp['pp_time'].$_SERVER['REMOTE_ADDR']);
set_session('ss_personalpay_uid', $uid);
goto_url(G4_SHOP_URL.'/personalpayresult.php?pp_id='.$pp['pp_id'].'&amp;uid='.$uid);
?>
<html>
<head>
<title>*** KCP [AX-HUB Version] ***</title>
<script>
// 결제 중 새로고침 방지 샘플 스크립트 (중복결제 방지)
function noRefresh()
{
/* CTRL + N키 막음. */
if ((event.keyCode == 78) && (event.ctrlKey == true))
{
event.keyCode = 0;
return false;
}
/* F5 번키 막음. */
if(event.keyCode == 116)
{
event.keyCode = 0;
return false;
}
}
document.onkeydown = noRefresh ;
</script>
</head>
</html>

208
shop/personalpayresult.php Normal file
View File

@ -0,0 +1,208 @@
<?php
include_once('./_common.php');
if (G4_IS_MOBILE) {
include_once(G4_MSHOP_PATH.'/personalpayresult.php');
return;
}
$sql = "select * from {$g4['shop_personalpay_table']} where pp_id = '$pp_id' ";
$pp = sql_fetch($sql);
if (!$pp['pp_id'] || (md5($pp['pp_id'].$pp['pp_time'].$_SERVER['REMOTE_ADDR']) != get_session('ss_personalpay_uid'))) {
alert("조회하실 개인결제 내역이 없습니다.", G4_SHOP_URL);
}
// 결제방법
$settle_case = $pp['pp_settle_case'];
$g4['title'] = '개인결제상세내역';
include_once('./_head.php');
?>
<!-- 주문상세내역 시작 { -->
<script>
var openwin = window.open( './kcp/proc_win.html', 'proc_win', '' );
if(openwin != null) {
openwin.close();
}
</script>
<div id="sod_fin">
<p>개인결제번호 <strong><?php echo $pp_id; ?></strong></p>
<div id="sod_fin_view">
<h2>결제 정보</h2>
<?php
$misu = true;
if ($pp['pp_amount'] == $pp['pp_receipt_amount']) {
$wanbul = " (완불)";
$misu = false; // 미수금 없음
}
else
{
$wanbul = display_price($pp['pp_receipt_amount']);
}
$misu_amount = $pp['pp_amount'] - $pp['pp_receipt_amount'];
// 결제정보처리
if($pp['pp_receipt_amount'] > 0)
$pp_receipt_amount = display_price($pp['pp_receipt_amount']);
else
$pp_receipt_amount = '아직 입금되지 않았거나 입금정보를 입력하지 못하였습니다.';
$app_no_subj = '';
$disp_bank = true;
$disp_receipt = false;
if($pp['pp_settle_case'] == '신용카드') {
$app_no_subj = '승인번호';
$app_no = $pp['pp_app_no'];
$disp_bank = false;
$disp_receipt = true;
} else if($pp['pp_settle_case'] == '휴대폰') {
$app_no_subj = '휴대폰번호';
$app_no = $pp['pp_bank_account'];
$disp_bank = false;
$disp_receipt = true;
} else if($pp['pp_settle_case'] == '가상계좌' || $pp['pp_settle_case'] == '계좌이체') {
$app_no_subj = 'KCP 거래번호';
$app_no = $pp['pp_tno'];
}
?>
<section id="sod_fin_pay">
<h3>결제정보</h3>
<table class="basic_tbl">
<colgroup>
<col class="grid_3">
<col>
</colgroup>
<tbody>
<?php if($pp['od_id']) { ?>
<tr>
<th scope="row">주문번호</th>
<td><?php echo $pp['od_id']; ?></td>
</tr>
<?php } ?>
<tr>
<th scope="row">결제방식</th>
<td><?php echo $pp['pp_settle_case']; ?></td>
</tr>
<?php if($pp_receipt_amount > 0) { ?>
<tr>
<th scope="row">결제금액</th>
<td><?php echo $pp_receipt_amount; ?></td>
</tr>
<tr>
<th scope="row">결제일시</th>
<td><?php echo $pp['pp_receipt_time']; ?></td>
</tr>
<?php
}
// 승인번호, 휴대폰번호, KCP 거래번호
if($app_no_subj)
{
?>
<tr>
<th scope="row"><?php echo $app_no_subj; ?></th>
<td><?php echo $app_no; ?></td>
</tr>
<?php
}
// 계좌정보
if($disp_bank)
{
?>
<tr>
<th scope="row">입금자명</th>
<td><?php echo $pp['pp_deposit_name']; ?></td>
</tr>
<tr>
<th scope="row">입금계좌</th>
<td><?php echo $pp['pp_bank_account']; ?></td>
</tr>
<?php
}
if($disp_receipt) {
?>
<tr>
<th scope="row">영수증</th>
<td>
<?php
if($pp['pp_settle_case'] == '휴대폰')
{
?>
<a href="javascript:;" onclick="window.open('https://admin.kcp.co.kr/Modules/Bill/ADSA_MCASH_N_Receipt.jsp?a_trade_no=<?php echo $pp['pp_tno']; ?>', 'winreceipt', 'width=500,height=690')">영수증 출력</a>
<?php
}
if($pp['pp_settle_case'] == '신용카드')
{
?>
<a href="javascript:;" onclick="window.open('http://admin.kcp.co.kr/Modules/Sale/Card/ADSA_CARD_BILL_Receipt.jsp?c_trade_no=<?php echo $pp['pp_tno']; ?>', 'winreceipt', 'width=620,height=800')">영수증 출력</a>
<?php
}
?>
<td>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</section>
</div>
<section id="sod_fin_tot">
<h2>결제합계</h2>
<ul>
<li>
총 주문액
<strong><?php echo display_price($pp['pp_amount']); ?></strong>
</li>
<?php
if ($misu_amount > 0) {
echo '<li>';
echo '미결제액'.PHP_EOL;
echo '<strong>'.display_price($misu_amount).'</strong>';
echo '</li>';
}
?>
<li id="alrdy">
결제액
<strong><?php echo $wanbul; ?></strong>
</li>
</ul>
</section>
<?php if ($pp['pp_settle_case'] == '가상계좌' && $default['de_card_test'] && $is_admin) {
preg_match("/(\s[^\s]+\s)/", $pp['pp_bank_account'], $matchs);
$deposit_no = trim($matchs[1]);
?>
<fieldset>
<legend>모의입금처리</legend>
<p>관리자가 가상계좌 테스트를 한 경우에만 보입니다.</p>
<form method="post" action="http://devadmin.kcp.co.kr/Modules/Noti/TEST_Vcnt_Noti_Proc.jsp" target="_blank">
<input type="text" name="e_trade_no" value="<?php echo $pp['pp_tno']; ?>" size="80"><br />
<input type="text" name="deposit_no" value="<?php echo $deposit_no; ?>" size="80"><br />
<input type="text" name="req_name" value="<?php echo $pp['pp_deposit_name']; ?>" size="80"><br />
<input type="text" name="noti_url" value="<?php echo G4_SHOP_URL; ?>/settle_kcp_common.php" size="80"><br /><br />
<input type="submit" value="입금통보 테스트">
</form>
</fieldset>
<?php } ?>
</div>
<!-- } 개인결제상세내역 끝 -->
<?php
include_once('./_tail.php');
?>

View File

@ -141,13 +141,37 @@ if(!$default['de_card_test']) {
/* = -------------------------------------------------------------------------- = */
if ( $tx_cd == "TX00" )
{
// 주문서 UPDATE
$sql = " update {$g4['shop_order_table']}
set od_receipt_amount = '$ipgm_mnyx',
od_receipt_time = '$tx_tm'
where od_id = '$order_no'
and od_tno = '$tno' ";
sql_query($sql, FALSE);
$sql = " select pp_id, od_id from {$g4['shop_personalpay_table']} where pp_id = '$order_no' and pp_tno = '$tno' ";
$row = sql_fetch($sql);
if($row['pp_id']) {
// 개인결제 UPDATE
$sql = " update {$g4['shop_personalpay_table']}
set pp_receipt_amount = '$ipgm_mnyx',
pp_receipt_time = '$tx_tm'
where pp_id = '$order_no'
and pp_tno = '$tno' ";
sql_query($sql, false);
if($row['od_id']) {
// 주문서 UPDATE
$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", $tx_tm);
$sql = " update {$g4['shop_order_table']}
set od_receipt_amount = od_receipt_amount + '$ipgm_mnyx',
od_receipt_time = '$tx_tm',
od_shop_memo = concat(od_shop_memo, \"\\n개인결제 ".$row['pp_id']." 로 결제완료 - ".$receipt_time."\")
where od_id = '{$row['od_id']}' ";
sql_query($sql, FALSE);
}
} else {
// 주문서 UPDATE
$sql = " update {$g4['shop_order_table']}
set od_receipt_amount = '$ipgm_mnyx',
od_receipt_time = '$tx_tm'
where od_id = '$order_no'
and od_tno = '$tno' ";
sql_query($sql, FALSE);
}
}
/* = -------------------------------------------------------------------------- = */

View File

@ -80,6 +80,7 @@ include_once(G4_LIB_PATH.'/popular.lib.php');
<?php } ?>
<li><a href="<?php echo G4_SHOP_URL; ?>/mypage.php">마이페이지</a></li>
<li><a href="<?php echo G4_SHOP_URL; ?>/faq.php">FAQ</a></li>
<li><a href="<?php echo G4_SHOP_URL; ?>/personalpay.php">개인결제</a></li>
<li><a href="<?php echo G4_SHOP_URL; ?>/itemuselist.php">사용후기</a></li>
<li><a href="<?php echo G4_URL; ?>/">커뮤니티</a></li>
</ul>

View File

@ -0,0 +1,36 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<link rel="stylesheet" href="<?php echo G4_SHOP_SKIN_URL; ?>/style.css">
<?php
for ($i=1; $row=sql_fetch_array($result); $i++) {
if ($list_mod >= 2) { // 1줄 이미지 : 2개 이상
if ($i%$list_mod == 0) $sct_last = ' sct_last'; // 줄 마지막
else if ($i%$list_mod == 1) $sct_last = ' sct_clear'; // 줄 첫번째
else $sct_last = '';
} else { // 1줄 이미지 : 1개
$sct_last = ' sct_clear';
}
if ($i == 1) {
echo "<ul class=\"sct sct_10\">\n";
}
$href = G4_SHOP_URL.'/personalpayform.php?pp_id='.$row['pp_id'].'&amp;page='.$page;
?>
<li class="sct_li<?php echo $sct_last; ?>" style="width:<?php echo $img_width; ?>px">
<a href="<?php echo $href; ?>" class="sct_a">
<span class="sct_img">개인결제 이미지</span>
<b><?php echo get_text($row['pp_name']).'님 개인결제'; ?></b>
<span class="sct_cost"><?php echo display_price($row['pp_amount']); ?></span>
</a>
</li>
<?php
}
if ($i > 1) echo "</ul>\n";
if($i == 1) echo "<p class=\"sct_noitem\">등록된 개인결제가 없습니다.</p>\n";
?>