diff --git a/mobile/shop/kcp/orderform.1.php b/mobile/shop/kcp/orderform.1.php
new file mode 100644
index 000000000..352edd628
--- /dev/null
+++ b/mobile/shop/kcp/orderform.1.php
@@ -0,0 +1,89 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mobile/shop/kcp/orderform.2.php b/mobile/shop/kcp/orderform.2.php
new file mode 100644
index 000000000..66a725292
--- /dev/null
+++ b/mobile/shop/kcp/orderform.2.php
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mobile/shop/kcp/orderform.3.php b/mobile/shop/kcp/orderform.3.php
new file mode 100644
index 000000000..d94c5afe5
--- /dev/null
+++ b/mobile/shop/kcp/orderform.3.php
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mobile/shop/lg/_common.php b/mobile/shop/lg/_common.php
new file mode 100644
index 000000000..7e0b90e75
--- /dev/null
+++ b/mobile/shop/lg/_common.php
@@ -0,0 +1,7 @@
+쇼핑몰 설치 후 이용해 주십시오.');
+define('_SHOP_', true);
+?>
\ No newline at end of file
diff --git a/mobile/shop/lg/cancel_url.php b/mobile/shop/lg/cancel_url.php
new file mode 100644
index 000000000..a459731d6
--- /dev/null
+++ b/mobile/shop/lg/cancel_url.php
@@ -0,0 +1,3 @@
+
+
+사용자가 ISP(국민/BC) 카드결제을 중단하였습니다.
\ No newline at end of file
diff --git a/mobile/shop/lg/mispwapurl.php b/mobile/shop/lg/mispwapurl.php
new file mode 100644
index 000000000..ff41306e6
--- /dev/null
+++ b/mobile/shop/lg/mispwapurl.php
@@ -0,0 +1,22 @@
+
\ No newline at end of file
diff --git a/mobile/shop/lg/note_url.php b/mobile/shop/lg/note_url.php
new file mode 100644
index 000000000..a1443ab82
--- /dev/null
+++ b/mobile/shop/lg/note_url.php
@@ -0,0 +1,153 @@
+
diff --git a/mobile/shop/lg/orderform.1.php b/mobile/shop/lg/orderform.1.php
new file mode 100644
index 000000000..225008a94
--- /dev/null
+++ b/mobile/shop/lg/orderform.1.php
@@ -0,0 +1,18 @@
+
+
+
\ No newline at end of file
diff --git a/mobile/shop/lg/orderform.2.php b/mobile/shop/lg/orderform.2.php
new file mode 100644
index 000000000..200cb2720
--- /dev/null
+++ b/mobile/shop/lg/orderform.2.php
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mobile/shop/lg/orderform.3.php b/mobile/shop/lg/orderform.3.php
new file mode 100644
index 000000000..d054abec9
--- /dev/null
+++ b/mobile/shop/lg/orderform.3.php
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/mobile/shop/lg/returnurl.php b/mobile/shop/lg/returnurl.php
new file mode 100644
index 000000000..306ab9883
--- /dev/null
+++ b/mobile/shop/lg/returnurl.php
@@ -0,0 +1,47 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/mobile/shop/lg/xpay_approval.php b/mobile/shop/lg/xpay_approval.php
new file mode 100644
index 000000000..14ccd0964
--- /dev/null
+++ b/mobile/shop/lg/xpay_approval.php
@@ -0,0 +1,155 @@
+ 계약정보 -> 상점정보관리에서 확인하실수 있습니다)
+ *
+ * MD5 해쉬데이터 암호화 검증을 위해
+ * LG유플러스에서 발급한 상점키(MertKey)를 환경설정 파일(lgdacom/conf/mall.conf)에 반드시 입력하여 주시기 바랍니다.
+ */
+
+$xpay = new XPay($configPath, $CST_PLATFORM);
+
+// Mert Key 설정
+$xpay->set_config_value('t'.$LGD_MID, $default['de_lg_mert_key']);
+$xpay->set_config_value($LGD_MID, $default['de_lg_mert_key']);
+
+$xpay->Init_TX($LGD_MID);
+$LGD_HASHDATA = md5($LGD_MID.$LGD_OID.$LGD_AMOUNT.$LGD_TIMESTAMP.$xpay->config[$LGD_MID]);
+$LGD_CUSTOM_PROCESSTYPE = "TWOTR";
+/*
+ *************************************************
+ * 2. MD5 해쉬암호화 (수정하지 마세요) - END
+ *************************************************
+ */
+$CST_WINDOW_TYPE = "submit"; // 수정불가
+$payReqMap['CST_PLATFORM'] = $CST_PLATFORM; // 테스트, 서비스 구분
+$payReqMap['CST_WINDOW_TYPE'] = $CST_WINDOW_TYPE; // 수정불가
+$payReqMap['CST_MID'] = $CST_MID; // 상점아이디
+$payReqMap['LGD_MID'] = $LGD_MID; // 상점아이디
+$payReqMap['LGD_OID'] = $LGD_OID; // 주문번호
+$payReqMap['LGD_BUYER'] = $LGD_BUYER; // 구매자
+$payReqMap['LGD_PRODUCTINFO'] = $LGD_PRODUCTINFO; // 상품정보
+$payReqMap['LGD_AMOUNT'] = $LGD_AMOUNT; // 결제금액
+$payReqMap['LGD_BUYEREMAIL'] = $LGD_BUYEREMAIL; // 구매자 이메일
+$payReqMap['LGD_CUSTOM_SKIN'] = $LGD_CUSTOM_SKIN; // 결제창 SKIN
+$payReqMap['LGD_CUSTOM_PROCESSTYPE'] = $LGD_CUSTOM_PROCESSTYPE; // 트랜잭션 처리방식
+$payReqMap['LGD_TIMESTAMP'] = $LGD_TIMESTAMP; // 타임스탬프
+$payReqMap['LGD_HASHDATA'] = $LGD_HASHDATA; // MD5 해쉬암호값
+$payReqMap['LGD_RETURNURL'] = $LGD_RETURNURL; // 응답수신페이지
+$payReqMap['LGD_VERSION'] = "PHP_SmartXPay_1.0"; // 버전정보 (삭제하지 마세요)
+$payReqMap['LGD_CUSTOM_FIRSTPAY'] = $LGD_CUSTOM_FIRSTPAY; // 디폴트 결제수단
+$payReqMap['LGD_CUSTOM_SWITCHINGTYPE'] = "SUBMIT"; // 신용카드 카드사 인증 페이지 연동 방식
+$payReqMap['LGD_ENCODING'] = "UTF-8";
+$payReqMap['LGD_ENCODING_NOTEURL'] = "UTF-8";
+$payReqMap['LGD_ENCODING_RETURNURL'] = "UTF-8";
+$payReqMap['LGD_TAXFREEAMOUNT'] = $LGD_TAXFREEAMOUNT;
+$payReqMap['LGD_CASHRECEIPTYN'] = $LGD_CASHRECEIPTYN;
+$payReqMap['LGD_BUYERPHONE'] = $LGD_BUYERPHONE;
+$payReqMap['LGD_BUYERID'] = $LGD_BUYERID;
+
+/*
+****************************************************
+* 안드로이드폰 신용카드 ISP(국민/BC)결제에만 적용 (시작)*
+****************************************************
+
+(주의)LGD_CUSTOM_ROLLBACK 의 값을 "Y"로 넘길 경우, LG U+ 전자결제에서 보낸 ISP(국민/비씨) 승인정보를 고객서버의 note_url에서 수신시 "OK" 리턴이 안되면 해당 트랜잭션은 무조건 롤백(자동취소)처리되고,
+LGD_CUSTOM_ROLLBACK 의 값 을 "C"로 넘길 경우, 고객서버의 note_url에서 "ROLLBACK" 리턴이 될 때만 해당 트랜잭션은 롤백처리되며 그외의 값이 리턴되면 정상 승인완료 처리됩니다.
+만일, LGD_CUSTOM_ROLLBACK 의 값이 "N" 이거나 null 인 경우, 고객서버의 note_url에서 "OK" 리턴이 안될시, "OK" 리턴이 될 때까지 3분간격으로 2시간동안 승인결과를 재전송합니다.
+*/
+
+$payReqMap['LGD_CUSTOM_ROLLBACK'] = ""; // 비동기 ISP에서 트랜잭션 처리여부
+$payReqMap['LGD_KVPMISPNOTEURL'] = $LGD_KVPMISPNOTEURL; // 비동기 ISP(ex. 안드로이드) 승인결과를 받는 URL
+$payReqMap['LGD_KVPMISPWAPURL'] = $LGD_KVPMISPWAPURL; // 비동기 ISP(ex. 안드로이드) 승인완료후 사용자에게 보여지는 승인완료 URL
+$payReqMap['LGD_KVPMISPCANCELURL'] = $LGD_KVPMISPCANCELURL; // ISP 앱에서 취소시 사용자에게 보여지는 취소 URL
+
+/*
+****************************************************
+* 안드로이드폰 신용카드 ISP(국민/BC)결제에만 적용 (끝) *
+****************************************************
+*/
+
+// 안드로이드 에서 신용카드 적용 ISP(국민/BC)결제에만 적용 (선택)
+// $payReqMap['LGD_KVPMISPAUTOAPPYN'] = "Y";
+// Y: 안드로이드에서 ISP신용카드 결제시, 고객사에서 'App To App' 방식으로 국민, BC카드사에서 받은 결제 승인을 받고 고객사의 앱을 실행하고자 할때 사용
+
+// 가상계좌(무통장) 결제연동을 하시는 경우 할당/입금 결과를 통보받기 위해 반드시 LGD_CASNOTEURL 정보를 LG 유플러스에 전송해야 합니다 .
+$payReqMap['LGD_CASNOTEURL'] = $LGD_CASNOTEURL; // 가상계좌 NOTEURL
+
+//Return URL에서 인증 결과 수신 시 셋팅될 파라미터 입니다.*/
+$payReqMap['LGD_RESPCODE'] = "";
+$payReqMap['LGD_RESPMSG'] = "";
+$payReqMap['LGD_PAYKEY'] = "";
+
+$_SESSION['PAYREQ_MAP'] = $payReqMap;
+
+$g5['title'] = 'LG 유플러스 eCredit서비스 결제';
+$g5['body_script'] = 'onload="launchCrossPlatform();"';
+include_once(G5_PATH.'/head.sub.php');
+?>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mobile/shop/orderform.php b/mobile/shop/orderform.php
index 3c16e0ec4..8b0721795 100644
--- a/mobile/shop/orderform.php
+++ b/mobile/shop/orderform.php
@@ -27,7 +27,7 @@ set_session('ss_order_id', $od_id);
$s_cart_id = $tmp_cart_id;
$order_action_url = G5_HTTPS_MSHOP_URL.'/orderformupdate.php';
-require './settle_kcp.inc.php';
+require_once(G5_MSHOP_PATH.'/settle_'.$default['de_pg_service'].'.inc.php');
// 결제등록 요청시 사용할 입금마감일
$ipgm_date = date("Ymd", (G5_SERVER_TIME + 86400 * 5));
@@ -251,93 +251,10 @@ ob_start();
-
-
-
-
-
@@ -735,41 +652,10 @@ ob_end_clean();
?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -777,52 +663,12 @@ ob_end_clean();
-
-
-
-
-
-
-
+ ?>
@@ -1281,7 +1127,7 @@ function calculate_tax()
var settle_method = "";
var temp_point = 0;
-function kcp_approval()
+function pay_approval()
{
var f = document.sm_form;
var pf = document.forderform;
@@ -1303,6 +1149,7 @@ function kcp_approval()
f.good_mny.value = od_price + send_cost + send_cost2 - send_coupon - temp_point;
}
+
f.buyr_name.value = pf.od_name.value;
f.buyr_mail.value = pf.od_email.value;
f.buyr_tel1.value = pf.od_tel.value;
@@ -1315,6 +1162,31 @@ function kcp_approval()
f.rcvr_add1.value = pf.od_b_addr1.value;
f.rcvr_add2.value = pf.od_b_addr2.value;
f.settle_method.value = settle_method;
+
+ var pay_method = "";
+ switch(settle_method) {
+ case "계좌이체":
+ pay_method = "SC0030";
+ break;
+ case "가상계좌":
+ pay_method = "SC0040";
+ break;
+ case "휴대폰":
+ pay_method = "SC0060";
+ break;
+ case "신용카드":
+ pay_method = "SC0010";
+ 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_TAXFREEAMOUNT.value = pf.comm_free_mny.value;
+
+
var new_win = window.open("about:blank", "tar_opener", "scrollbars=yes,resizable=yes");
f.target = "tar_opener";
diff --git a/mobile/shop/orderformupdate.php b/mobile/shop/orderformupdate.php
index d55831f72..aa1951e1b 100644
--- a/mobile/shop/orderformupdate.php
+++ b/mobile/shop/orderformupdate.php
@@ -4,7 +4,10 @@ include_once(G5_LIB_PATH.'/mailer.lib.php');
// 결제등록 완료 체크
if($od_settle_case != '무통장') {
- if($_POST['tran_cd'] == '' || $_POST['enc_info'] == '' || $_POST['enc_data'] == '')
+ if($default['de_pg_service'] == 'kcp' && ($_POST['tran_cd'] == '' || $_POST['enc_info'] == '' || $_POST['enc_data'] == ''))
+ alert('결제등록 요청 후 주문해 주십시오.');
+
+ if($default['de_pg_service'] == 'lg' && !$_POST['LGD_PAYKEY'])
alert('결제등록 요청 후 주문해 주십시오.');
}
@@ -275,7 +278,15 @@ if ($od_settle_case == "무통장")
}
else if ($od_settle_case == "계좌이체")
{
- include G5_MSHOP_PATH.'/kcp/pp_ax_hub.php';
+ switch($default['de_pg_service']) {
+ case 'lg':
+ include G5_SHOP_PATH.'/lg/xpay_result.php';
+ break;
+ default:
+ include G5_MSHOP_PATH.'/kcp/pp_ax_hub.php';
+ $bank_name = iconv("cp949", "utf-8", $bank_name);
+ break;
+ }
$od_tno = $tno;
$od_receipt_price = $amount;
@@ -283,7 +294,6 @@ else if ($od_settle_case == "계좌이체")
$od_receipt_time = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/", "\\1-\\2-\\3 \\4:\\5:\\6", $app_time);
$od_bank_account = $od_settle_case;
$od_deposit_name = $od_name;
- $bank_name = iconv("cp949", "utf8", $bank_name);
$od_bank_account = $bank_name;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
@@ -292,21 +302,35 @@ else if ($od_settle_case == "계좌이체")
}
else if ($od_settle_case == "가상계좌")
{
- include G5_MSHOP_PATH.'/kcp/pp_ax_hub.php';
+ switch($default['de_pg_service']) {
+ case 'lg':
+ include G5_SHOP_PATH.'/lg/xpay_result.php';
+ break;
+ default:
+ include G5_SHOP_PATH.'/kcp/pp_ax_hub.php';
+ $bankname = iconv("cp949", "utf-8", $bankname);
+ $depositor = iconv("cp949", "utf-8", $depositor);
+ break;
+ }
$od_receipt_point = $i_temp_point;
$od_tno = $tno;
$od_receipt_price = 0;
- $bankname = iconv("cp949", "utf8", $bankname);
- $depositor = iconv("cp949", "utf8", $depositor);
- $od_bank_account = $bankname.' '.$account.' '.$depositor;
+ $od_bank_account = $bankname.' '.$account;
$od_deposit_name = $od_name;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
}
else if ($od_settle_case == "휴대폰")
{
- include G5_MSHOP_PATH.'/kcp/pp_ax_hub.php';
+ switch($default['de_pg_service']) {
+ case 'lg':
+ include G5_SHOP_PATH.'/lg/xpay_result.php';
+ break;
+ default:
+ include G5_SHOP_PATH.'/kcp/pp_ax_hub.php';
+ break;
+ }
$od_tno = $tno;
$od_receipt_price = $amount;
@@ -320,14 +344,21 @@ else if ($od_settle_case == "휴대폰")
}
else if ($od_settle_case == "신용카드")
{
- include G5_MSHOP_PATH.'/kcp/pp_ax_hub.php';
+ switch($default['de_pg_service']) {
+ case 'lg':
+ include G5_SHOP_PATH.'/lg/xpay_result.php';
+ break;
+ default:
+ include G5_SHOP_PATH.'/kcp/pp_ax_hub.php';
+ $card_name = iconv("cp949", "utf-8", $card_name);
+ break;
+ }
$od_tno = $tno;
$od_app_no = $app_no;
$od_receipt_price = $amount;
$od_receipt_point = $i_temp_point;
$od_receipt_time = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/", "\\1-\\2-\\3 \\4:\\5:\\6", $app_time);
- $card_name = iconv("cp949", "utf8", $card_name);
$od_bank_account = $card_name;
$pg_price = $amount;
$od_misu = $i_price - $od_receipt_price;
@@ -343,7 +374,14 @@ else
if($tno) {
if((int)$i_price !== (int)$pg_price) {
$cancel_msg = '결제금액 불일치';
- include G5_MSHOP_PATH.'/kcp/pp_ax_hub_cancel.php'; // 결제취소처리
+ switch($default['de_pg_service']) {
+ case 'lg':
+ include G5_SHOP_PATH.'/lg/xpay_cancel.php';
+ break;
+ default:
+ include G5_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php';
+ break;
+ }
die("Receipt Amount Error");
}
@@ -426,18 +464,25 @@ $sql = " insert {$g5['g5_shop_order_table']}
";
$result = sql_query($sql, false);
-// 주문정보 입력 오류시 kcp 결제 취소
+// 주문정보 입력 오류시 결제 취소
if(!$result) {
if($tno) {
$cancel_msg = '주문정보 입력 오류';
- include G5_MSHOP_PATH.'/kcp/pp_ax_hub_cancel.php'; // 결제취소처리
+ switch($default['de_pg_service']) {
+ case 'lg':
+ include G5_SHOP_PATH.'/lg/xpay_cancel.php';
+ break;
+ default:
+ include G5_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php';
+ break;
+ }
}
// 관리자에게 오류 알림 메일발송
$error = 'order';
include G5_SHOP_PATH.'/ordererrormail.php';
- die_utf8('고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.
KCP를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.');
+ die_utf8('
고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.
'.strtoupper($default['de_pg_service']).'를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.');
}
// 장바구니 상태변경
@@ -455,11 +500,18 @@ $sql = "update {$g5['g5_shop_cart_table']}
and ct_select = '1' ";
$result = sql_query($sql, false);
-// 주문정보 입력 오류시 kcp 결제 취소
+// 주문정보 입력 오류시 결제 취소
if(!$result) {
if($tno) {
$cancel_msg = '주문상태 변경 오류';
- include G5_MSHOP_PATH.'/kcp/pp_ax_hub_cancel.php'; // 결제취소처리
+ switch($default['de_pg_service']) {
+ case 'lg':
+ include G5_SHOP_PATH.'/lg/xpay_cancel.php';
+ break;
+ default:
+ include G5_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php';
+ break;
+ }
}
// 관리자에게 오류 알림 메일발송
@@ -469,7 +521,7 @@ if(!$result) {
// 주문삭제
sql_query(" delete from {$g5['g5_shop_order_table']} where od_id = '$od_id' ");
- die_utf8('
고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.
KCP를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.');
+ die_utf8('
고객님의 주문 정보를 처리하는 중 오류가 발생해서 주문이 완료되지 않았습니다.
'.strtoupper($default['de_pg_service']).'를 이용한 전자결제(신용카드, 계좌이체, 가상계좌 등)은 자동 취소되었습니다.');
}
// 회원이면서 포인트를 사용했다면 포인트 테이블에 사용을 추가
diff --git a/mobile/shop/orderinquiryview.php b/mobile/shop/orderinquiryview.php
index 847eb9c68..77dcd05f3 100644
--- a/mobile/shop/orderinquiryview.php
+++ b/mobile/shop/orderinquiryview.php
@@ -21,8 +21,6 @@ $settle_case = $od['od_settle_case'];
$g5['title'] = '주문상세내역';
include_once(G5_MSHOP_PATH.'/_head.php');
-
-require './settle_kcp.inc.php';
?>
@@ -225,7 +223,7 @@ require './settle_kcp.inc.php';
$disp_bank = false;
$disp_receipt = true;
} else if($od['od_settle_case'] == '가상계좌' || $od['od_settle_case'] == '계좌이체') {
- $app_no_subj = 'KCP 거래번호';
+ $app_no_subj = '거래번호';
$app_no = $od['od_tno'];
}
?>
@@ -268,7 +266,7 @@ require './settle_kcp.inc.php';
@@ -555,7 +553,7 @@ require './settle_kcp.inc.php';
- 0 && $default['de_card_test'] && $is_admin) {
+ 0 && $default['de_card_test'] && $is_admin && $od['od_pg'] == 'kcp') {
preg_match("/(\s[^\s]+\s)/", $od['od_bank_account'], $matchs);
$deposit_no = trim($matchs[1]);
?>
@@ -563,9 +561,13 @@ require './settle_kcp.inc.php';
모의입금처리
관리자가 가상계좌 테스트를 한 경우에만 보입니다.
diff --git a/mobile/shop/personalpayform.php b/mobile/shop/personalpayform.php
index ef71b0b0b..7fd0695c9 100644
--- a/mobile/shop/personalpayform.php
+++ b/mobile/shop/personalpayform.php
@@ -15,7 +15,7 @@ include_once(G5_MSHOP_PATH.'/_head.php');
$action_url = G5_HTTPS_MSHOP_URL.'/personalpayformupdate.php';
-require './settle_kcp.inc.php';
+require_once(G5_MSHOP_PATH.'/settle_'.$default['de_pg_service'].'.inc.php');
// 결제등록 요청시 사용할 입금마감일
$ipgm_date = date("Ymd", (G5_SERVER_TIME + 86400 * 5));
@@ -34,74 +34,22 @@ if($default['de_escrow_use']) {
$good_info .= "good_cntx=1".chr(31);
$good_info .= "good_amtx=".$pp['pp_price'].chr(31);
}
+
+// 주문폼과 공통 사용을 위해 추가
+$od_id = $pp_id;
+$tot_price = $pp['pp_price'];
+$goods = $pp['pp_name'].'님 개인결제';
?>
-
-
-
-
+