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

@ -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 } ?>