lg 에스크로 배송 연동 기능 추가

This commit is contained in:
chicpro
2014-06-13 13:21:15 +09:00
parent fe0124ea51
commit c74af86e5a
9 changed files with 213 additions and 113 deletions

View File

@ -16,14 +16,6 @@ if($config['cf_sms_use'] == 'icode' && $_POST['send_sms'])
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
}
$escrow_count = 0;
if($_POST['send_escrow']) {
$escrow_tno = array();
$escrow_corp = array();
$escrow_numb = array();
$escrow_idx = 0;
}
if($_FILES['excelfile']['tmp_name']) {
$file = $_FILES['excelfile']['tmp_name'];
@ -142,11 +134,11 @@ if($_FILES['excelfile']['tmp_name']) {
// 에스크로 배송
if($_POST['send_escrow'] && $od['od_tno'] && $od['od_escrow']) {
$escrow_tno[$escrow_idx] = $od['od_tno'];
$escrow_numb[$escrow_idx] = $od_invoice;
$escrow_corp[$escrow_idx] = $od_delivery_company;
$escrow_idx++;
$escrow_count++;
$escrow_tno = $od['od_tno'];
$escrow_numb = $od_invoice;
$escrow_corp = $od_delivery_company;
include(G5_SHOP_PATH.'/'.$od['od_pg'].'/escrow.register.php');
}
}
}
@ -157,12 +149,6 @@ if($config['cf_sms_use'] == 'icode' && $_POST['send_sms'] && $sms_count)
$SMS->Send();
}
// 에스크로 배송
if($_POST['send_escrow'] && $escrow_count)
{
include_once('./orderescrow.inc.php');
}
$g5['title'] = '엑셀 배송일괄처리 결과';
include_once(G5_PATH.'/head.sub.php');
?>

View File

@ -1,65 +0,0 @@
<?php
include_once('./_common.php');
include_once(G5_SHOP_PATH.'/settle_kcp.inc.php');
// locale ko_KR.euc-kr 로 설정
setlocale(LC_CTYPE, 'ko_KR.euc-kr');
$g_conf_site_cd = $default['de_kcp_mid'];
$g_conf_site_key = $default['de_kcp_site_key'];
$g_conf_home_dir = G5_SHOP_PATH.'/kcp';
$g_conf_key_dir = '';
$g_conf_log_dir = '';
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
{
$g_conf_key_dir = G5_SHOP_PATH.'/kcp/bin/pub.key';
$g_conf_log_dir = G5_SHOP_PATH.'/kcp/log';
}
if (preg_match("/^T000/", $g_conf_site_cd) || $default['de_card_test']) {
$g_conf_gw_url = "testpaygw.kcp.co.kr";
}
else {
$g_conf_gw_url = "paygw.kcp.co.kr";
if (!preg_match("/^SR/", $g_conf_site_cd)) {
alert("SR 로 시작하지 않는 KCP SITE CODE 는 지원하지 않습니다.");
}
}
include_once(G5_SHOP_PATH.'/kcp/pp_ax_hub_lib.php');
$req_tx = 'mod_escrow';
$mod_type = 'STE1';
$mod_desc = '에스크로 배송시작 등록';
$cust_ip = getenv('REMOTE_ADDR');
$c_PayPlus = new C_PP_CLI;
$c_PayPlus->mf_clear();
$tran_cd = "00200000";
// 에스크로 상태변경
$tno_count = count($escrow_tno);
for($i=0; $i<$tno_count; $i++) {
if(!$escrow_tno[$i] || !$escrow_corp[$i] || !$escrow_numb[$i])
continue;
$c_PayPlus->mf_set_modx_data( "tno", $escrow_tno[$i] );
$c_PayPlus->mf_set_modx_data( "mod_type", $mod_type );
$c_PayPlus->mf_set_modx_data( "mod_ip", $cust_ip );
$c_PayPlus->mf_set_modx_data( "mod_desc", $mod_desc );
$c_PayPlus->mf_set_modx_data( "deli_numb", $escrow_numb[$i] );
$c_PayPlus->mf_set_modx_data( "deli_corp", $escrow_corp[$i] );
$c_PayPlus->mf_do_tx( $trace_no, $g_conf_home_dir, $g_conf_site_cd, $g_conf_site_key, $tran_cd, "",
$g_conf_gw_url, $g_conf_gw_port, "payplus_cli_slib", $ordr_idxx,
$cust_ip, "3" , 0, 0, $g_conf_key_dir, $g_conf_log_dir); // 응답 전문 처리
$res_cd = $c_PayPlus->m_res_cd; // 결과 코드
$res_msg = $c_PayPlus->m_res_msg; // 결과 메시지
}
// locale 설정 초기화
setlocale(LC_CTYPE, '');
?>

View File

@ -130,17 +130,13 @@ include "./ordersms.inc.php";
// 에스크로 배송처리
if($_POST['od_pg'] == 'kcp' && $_POST['od_tno'] && $_POST['od_escrow'] == 1)
if($_POST['od_tno'] && $_POST['od_escrow'] == 1)
{
$escrow_tno = array();
$escrow_corp = array();
$escrow_numb = array();
$escrow_tno = $_POST['od_tno'];
$escrow_corp = $_POST['od_delivery_company'];
$escrow_numb = $_POST['od_invoice'];
$escrow_tno[0] = $_POST['od_tno'];
$escrow_corp[0] = $_POST['od_delivery_company'];
$escrow_numb[0] = $_POST['od_invoice'];
include_once('./orderescrow.inc.php');
include(G5_SHOP_PATH.'/'.$od['od_pg'].'/escrow.register.php');
}

View File

@ -465,7 +465,7 @@ if(!sql_query(" select mb_id from {$g5['g5_shop_order_delete_table']} limit 1 ",
<input type="checkbox" name="send_sms" value="1" id="od_send_sms" checked="checked">
<label for="od_send_sms"><?php echo $change_status; ?>안내 SMS</label>
<?php } ?>
<?php if($od_status == '준비' && $default['de_pg_service'] == 'kcp') { ?>
<?php if($od_status == '준비') { ?>
<input type="checkbox" name="send_escrow" value="1" id="od_send_escrow">
<label for="od_send_escrow">에스크로배송등록</label>
<?php } ?>

View File

@ -16,14 +16,6 @@ if($config['cf_sms_use'] == 'icode' && $_POST['send_sms'])
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
}
$escrow_count = 0;
if($_POST['send_escrow']) {
$escrow_tno = array();
$escrow_corp = array();
$escrow_numb = array();
$escrow_idx = 0;
}
for ($i=0; $i<count($_POST['chk']); $i++)
{
// 실제 번호를 넘김
@ -106,11 +98,11 @@ for ($i=0; $i<count($_POST['chk']); $i++)
// 에스크로 배송
if($_POST['send_escrow'] && $od['od_tno'] && $od['od_escrow']) {
$escrow_tno[$escrow_idx] = $od['od_tno'];
$escrow_numb[$escrow_idx] = $invoice;
$escrow_corp[$escrow_idx] = $delivery_company;
$escrow_idx++;
$escrow_count++;
$escrow_tno = $od['od_tno'];
$escrow_numb = $invoice;
$escrow_corp = $delivery_company;
include(G5_SHOP_PATH.'/'.$od['od_pg'].'/escrow.register.php');
}
break;
@ -152,12 +144,6 @@ if($config['cf_sms_use'] == 'icode' && $_POST['send_sms'] && $sms_count)
$SMS->Send();
}
// 에스크로 배송
if($_POST['send_escrow'] && $escrow_count)
{
include_once('./orderescrow.inc.php');
}
$qstr = "sort1=$sort1&amp;sort2=$sort2&amp;sel_field=$sel_field&amp;search=$search";
$qstr .= "&amp;od_status=$od_status";
$qstr .= "&amp;od_settle_case=$od_settle_case";

View File

@ -0,0 +1,62 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if($od['od_pg'] != 'kcp') return;
include_once(G5_SHOP_PATH.'/settle_kcp.inc.php');
// locale ko_KR.euc-kr 로 설정
setlocale(LC_CTYPE, 'ko_KR.euc-kr');
$g_conf_site_cd = $default['de_kcp_mid'];
$g_conf_site_key = $default['de_kcp_site_key'];
$g_conf_home_dir = G5_SHOP_PATH.'/kcp';
$g_conf_key_dir = '';
$g_conf_log_dir = '';
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
{
$g_conf_key_dir = G5_SHOP_PATH.'/kcp/bin/pub.key';
$g_conf_log_dir = G5_SHOP_PATH.'/kcp/log';
}
if (preg_match("/^T000/", $g_conf_site_cd) || $default['de_card_test']) {
$g_conf_gw_url = "testpaygw.kcp.co.kr";
}
else {
$g_conf_gw_url = "paygw.kcp.co.kr";
if (!preg_match("/^SR/", $g_conf_site_cd)) {
alert("SR 로 시작하지 않는 KCP SITE CODE 는 지원하지 않습니다.");
}
}
include_once(G5_SHOP_PATH.'/kcp/pp_ax_hub_lib.php');
$req_tx = 'mod_escrow';
$mod_type = 'STE1';
$mod_desc = '에스크로 배송시작 등록';
$cust_ip = getenv('REMOTE_ADDR');
$c_PayPlus = new C_PP_CLI;
$c_PayPlus->mf_clear();
$tran_cd = "00200000";
// 에스크로 상태변경
$c_PayPlus->mf_set_modx_data( "tno", $escrow_tno );
$c_PayPlus->mf_set_modx_data( "mod_type", $mod_type );
$c_PayPlus->mf_set_modx_data( "mod_ip", $cust_ip );
$c_PayPlus->mf_set_modx_data( "mod_desc", $mod_desc );
$c_PayPlus->mf_set_modx_data( "deli_numb", $escrow_numb );
$c_PayPlus->mf_set_modx_data( "deli_corp", $escrow_corp );
$c_PayPlus->mf_do_tx( $trace_no, $g_conf_home_dir, $g_conf_site_cd, $g_conf_site_key, $tran_cd, "",
$g_conf_gw_url, $g_conf_gw_port, "payplus_cli_slib", $ordr_idxx,
$cust_ip, "3" , 0, 0, $g_conf_key_dir, $g_conf_log_dir); // 응답 전문 처리
$res_cd = $c_PayPlus->m_res_cd; // 결과 코드
$res_msg = $c_PayPlus->m_res_msg; // 결과 메시지
// locale 설정 초기화
setlocale(LC_CTYPE, '');
?>

117
shop/lg/escrow.register.php Normal file
View File

@ -0,0 +1,117 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if($od['od_pg'] != 'lg') return;
if($default['de_card_test']) {
$mid = 'tsi_'.$config['cf_lg_mid'];
$service_url = "http://pgweb.uplus.co.kr:7085/pg/wmp/mertadmin/jsp/escrow/rcvdlvinfo.jsp";
} else {
$mid = 'si_'.$config['cf_lg_mid'];
$service_url = "https://pgweb.uplus.co.kr/pg/wmp/mertadmin/jsp/escrow/rcvdlvinfo.jsp";
}
// 택배사코드
$dlvcomcode = array(
'대한통운' => 'KE',
'로젠택배' => 'LG',
'아주택배' => 'AJ',
'KG옐로우캡택배' => 'YC',
'우체국' => 'PO',
'이젠택배' => 'EZ',
'트라넷' => 'TN',
'한진택배' => 'HJ',
'현대택배' => 'HD',
'동부택배' => 'FE',
'Bell Express' => 'BE',
'CJ대한통운' => 'CJ',
'HTH' => 'SS',
'KGB택배' => 'KB',
'KT로지스택배' => 'KT',
'SC로지스택배' => 'SC',
'일양로지스' => 'IY',
'이노지스택배' => 'IN',
'하나로택배' => 'HN',
'대신택배' => 'DS',
'우편등기' => 'RP'
);
// 발송정보
$oid = $od['od_id']; // 주문번호
$productid = ''; // 상품ID
$dlvtype = '03'; // 등록내용구분
$rcvdate = ''; // 실수령일자
$rcvname = ''; // 실수령인명
$rcvrelation = ''; // 관계
$dlvdate = date("YmdHi", G5_SERVER_TIME); // 발송일자
$dlvcompcode = $dlvcomcode[$escrow_corp]; // 배송회사코드
$dlvcomp = str_replace(' ', '||', $escrow_corp); // 배송회사명
$dlvno = str_replace(' ', '||', $escrow_numb); // 운송장번호
$dlvworker = ''; // 배송자명
$dlvworkertel = ''; // 배송자전화번호
$mertkey = $config['cf_lg_mert_key']; // 각 상점의 테스트용 상점키와 서비스용 상점키
$hashdate; // 인증키
$datasize = 1; // 여러건 전송일대 상점셋팅
$hashdata = md5($mid.$oid.$dlvdate.$dlvcompcode.$dlvno.$mertkey);
// LG유플러스의 배송결과등록페이지를 호출하여 배송정보등록함
/*
* 아래 URL 을 호출시 파라메터의 값에 공백이 발생하면 해당 URL이 비정상적으로 호출됩니다.
* 배송사명등을 파라메터로 등록시 공백을 "||" 으로 변경하여 주시기 바랍니다.
*/
$str_url = $service_url."?mid=$mid&oid=$oid&productid=$productid&orderdate=$orderdate&dlvtype=$dlvtype&rcvdate=$rcvdate&rcvname=$rcvname&rcvrelation=$rcvrelation&dlvdate=$dlvdate&dlvcompcode=$dlvcompcode&dlvno=$dlvno&dlvworker=$dlvworker&dlvworkertel=$dlvworkertel&hashdata=$hashdata";
/*
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $str_url);
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE_PATH);
curl_setopt ($ch, CURLOPT_COOKIEFILE, COOKIE_FILE_PATH);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$fp = curl_exec ($ch);
if(curl_errno($ch)){
// 연결실패시 DB 처리 로직 추가
}else{
if(trim($fp)=="OK"){
// 정상처리되었을때 DB 처리
}else{
// 비정상처리 되었을때 DB 처리
}
}
curl_close($ch);
*/
/*
* fopen 방식
* php 4.3 버전 이전에서 사용가능
*/
$fp = @fopen($str_url,"r");
if(!$fp)
{
// 연결실패시 DB 처리 로직 추가
}
else
{
// 해당 페이지 return값 읽기
while(!feof($fp))
{
$res .= fgets($fp,3000);
}
if(trim($res) == "OK")
{
// 정상처리되었을때 DB 처리
}
else
{
// 비정상처리 되었을때 DB 처리
}
}
?>

View File

@ -25,7 +25,17 @@ $LGD_CUSTOM_PROCESSTYPE = 'TWOTR';
<input type="hidden" name="LGD_BUYERID" id="LGD_BUYERID" value="<?php echo $LGD_BUYERID; ?>"> <!-- 구매자ID -->
<input type="hidden" name="LGD_CUSTOM_USABLEPAY" id="LGD_CUSTOM_USABLEPAY" value="<?php echo $LGD_CUSTOM_USABLEPAY; ?>"> <!-- 결제가능수단 -->
<input type="hidden" name="LGD_CASHRECEIPTYN" id="LGD_CASHRECEIPTYN" value="N"> <!-- 현금영수증 사용 설정 -->
<input type="hidden" name="LGD_BUYERADDRESS" id="LGD_BUYERADDRESS" value=""> <!-- 구매자 주소 -->
<input type="hidden" name="LGD_BUYERPHONE" id="LGD_BUYERPHONE" value=""> <!-- 구매자 휴대폰번호 -->
<input type="hidden" name="LGD_RECEIVER" id="LGD_RECEIVER" value=""> <!-- 수취인 -->
<input type="hidden" name="LGD_RECEIVERPHONE" id="LGD_RECEIVERPHONE" value=""> <!-- 수취인 휴대폰번호 -->
<?php if($default['de_escrow_use']) { ?>
<input type="hidden" name="LGD_ESCROW_ZIPCODE" id="LGD_ESCROW_ZIPCODE" value=""> <!-- 에스크로배송지우편번호 -->
<input type="hidden" name="LGD_ESCROW_ADDRESS1" id="LGD_ESCROW_ADDRESS1" value=""> <!-- 에스크로배송지우편번호 -->
<input type="hidden" name="LGD_ESCROW_ADDRESS2" id="LGD_ESCROW_ADDRESS2" value=""> <!-- 에스크로배송지주소동까지 -->
<input type="hidden" name="LGD_ESCROW_BUYERPHONE" id="LGD_ESCROW_BUYERPHONE" value=""> <!-- 에스크로배송지주소상세 -->
<?php } ?>
<!-- 가상계좌(무통장) 결제연동을 하시는 경우 할당/입금 결과를 통보받기 위해 반드시 LGD_CASNOTEURL 정보를 LG 유플러스에 전송해야 합니다 . -->
<input type="hidden" name="LGD_CASNOTEURL" id="LGD_CASNOTEURL" value="<?php echo $LGD_CASNOTEURL ?>"> <!-- 가상계좌 NOTEURL -->

View File

@ -1369,6 +1369,14 @@ function forderform_check(f)
f.LGD_BUYEREMAIL.value = f.od_email.value;
f.LGD_BUYERPHONE.value = f.od_hp.value;
f.LGD_AMOUNT.value = f.good_mny.value;
f.LGD_RECEIVER.value = f.od_b_name.value;
f.LGD_RECEIVERPHONE.value = f.od_b_hp.value;
<?php if($default['de_escrow_use']) { ?>
f.LGD_ESCROW_ZIPCODE.value = f.od_b_zip1.value + f.od_b_zip2.value;
f.LGD_ESCROW_ADDRESS1.value = f.od_b_addr1.value;
f.LGD_ESCROW_ADDRESS2.value = f.od_b_addr2.value;
f.LGD_ESCROW_BUYERPHONE.value = f.od_hp.value;
<?php } ?>
<?php if($default['de_tax_flag_use']) { ?>
f.LGD_TAXFREEAMOUNT.value = f.comm_free_mny.value;
<?php } ?>