카카오페이 모바일 결제 추가
This commit is contained in:
39
shop/kakaopay/kakaopay_cancel.php
Normal file
39
shop/kakaopay/kakaopay_cancel.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
include_once(G5_SHOP_PATH.'/kakaopay/incKakaopayCommon.php');
|
||||
include_once(G5_SHOP_PATH.'/kakaopay/lgcns_CNSpay.php');
|
||||
|
||||
// 로그 저장 위치 지정
|
||||
$connector = new CnsPayWebConnector($LogDir);
|
||||
$connector->CnsActionUrl($CnsPayDealRequestUrl);
|
||||
$connector->CnsPayVersion($phpVersion);
|
||||
$connector->setRequestData($_REQUEST);
|
||||
$connector->addRequestData("actionType", "CL0");
|
||||
$connector->addRequestData("CancelPwd", $cancelPwd);
|
||||
$connector->addRequestData("CancelIP", $_SERVER['REMOTE_ADDR']);
|
||||
|
||||
//가맹점키 셋팅 (MID 별로 틀림)
|
||||
$connector->addRequestData("EncodeKey", $merchantKey);
|
||||
|
||||
// 4. CNSPAY Lite 서버 접속하여 처리
|
||||
$connector->requestAction();
|
||||
|
||||
// 5. 결과 처리
|
||||
$resultCode = $connector->getResultData("ResultCode"); // 결과코드 (정상 :2001(취소성공), 2002(취소진행중), 그 외 에러)
|
||||
$resultMsg = $connector->getResultData("ResultMsg"); // 결과메시지
|
||||
$cancelAmt = $connector->getResultData("CancelAmt"); // 취소금액
|
||||
$cancelDate = $connector->getResultData("CancelDate"); // 취소일
|
||||
$cancelTime = $connector->getResultData("CancelTime"); // 취소시간
|
||||
$payMethod = $connector->getResultData("PayMethod"); // 취소 결제수단
|
||||
$mid = $connector->getResultData("MID"); // 가맹점 ID
|
||||
$tid = $connector->getResultData("TID"); // TID
|
||||
$errorCD = $connector->getResultData("ErrorCD"); // 상세 에러코드
|
||||
$errorMsg = $connector->getResultData("ErrorMsg"); // 상세 에러메시지
|
||||
$authDate = $cancelDate . $cancelTime; // 거래시간
|
||||
$ccPartCl = $connector->getResultData("CcPartCl"); // 부분취소 가능여부 (0:부분취소불가, 1:부분취소가능)
|
||||
$stateCD = $connector->getResultData("StateCD"); // 거래상태코드 (0: 승인, 1:전취소, 2:후취소)
|
||||
$authDate = $connector->makeDateString($authDate);
|
||||
$errorMsg = iconv("euc-kr", "utf-8", $errorMsg);
|
||||
$resultMsg = iconv("euc-kr", "utf-8", $resultMsg);
|
||||
?>
|
||||
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
include(G5_SHOP_PATH.'/kakaopay/incKakaopayCommon.php');
|
||||
include(G5_SHOP_PATH.'/kakaopay/lgcns_CNSpay.php');
|
||||
include_once(G5_SHOP_PATH.'/kakaopay/incKakaopayCommon.php');
|
||||
include_once(G5_SHOP_PATH.'/kakaopay/lgcns_CNSpay.php');
|
||||
|
||||
// 로그 저장 위치 지정
|
||||
$connector = new CnsPayWebConnector($LogDir);
|
||||
|
||||
@ -28,6 +28,9 @@
|
||||
public function setRequestData($request) {
|
||||
try {
|
||||
foreach (array_keys($request) as $key) {
|
||||
if(is_array($request[$key]))
|
||||
continue;
|
||||
|
||||
$this->requestData[$key] = iconv("UTF-8", "EUC-KR", $request[$key]);
|
||||
}
|
||||
return "_TRUE_";
|
||||
@ -62,7 +65,7 @@
|
||||
return "_FAIL_";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 2014.12.02 추가 (check key in array)
|
||||
private function getRequestData($key) {
|
||||
if (array_key_exists($key, $this->requestData)) {
|
||||
@ -71,7 +74,7 @@
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function requestAction() {
|
||||
$encodeKey = $this->requestData["EncodeKey"];
|
||||
unset($this->requestData["EncodeKey"]);
|
||||
@ -92,7 +95,7 @@
|
||||
$requestMessage = $this->makeRequestText($this->requestData);
|
||||
$resultMessage = $this->connectToServer($serviceUrl, $requestMessage);
|
||||
$this->writeLog("Result");
|
||||
// 2014.12.02 수신 전문 로깅 처리 제외
|
||||
// 2014.12.02 수신 전문 로깅 처리 제외
|
||||
//$this->writeLog($resultMessage);
|
||||
if ($resultMessage == "_FAIL_" || substr($resultMessage, 0, 4) == "FAIL") {
|
||||
$resultCode = "";
|
||||
@ -124,7 +127,7 @@
|
||||
return "_FAIL_";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 2014.12.02 결과 배열 마스킹
|
||||
private function resultDataMask($strLogText) {
|
||||
$arrMask = array();
|
||||
@ -138,14 +141,14 @@
|
||||
return str_replace("\n", "", trim($strLogText));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 2014.12.02 주요 정보 마스킹
|
||||
private function requestMask ($name, $text) {
|
||||
$value = str_replace("\n", "", trim($text));
|
||||
|
||||
|
||||
if ($value == null || strlen(trim($value)) == 0) return "";
|
||||
|
||||
if ($name == "X_CARDNO" || $name == "realPan" || $name == "cardNo"
|
||||
|
||||
if ($name == "X_CARDNO" || $name == "realPan" || $name == "cardNo"
|
||||
|| $name == "CardBin" || $name == "CardNo") {
|
||||
return $this->masking($value, 6, true, false);
|
||||
} else if ($name == "BuyerName" || $name == "buyerName") {
|
||||
@ -164,20 +167,20 @@
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 2014.12.02 마스킹 처리
|
||||
private function masking($string, $num, $isLeftOrder, $beginMasking) {
|
||||
|
||||
|
||||
if ( $string == null )
|
||||
return "";
|
||||
|
||||
|
||||
$res = "";
|
||||
$res2 = "";
|
||||
$sleng = 0;
|
||||
|
||||
|
||||
$str = iconv('euc-kr','utf-8',$string);
|
||||
$n = mb_strlen($str, 'utf-8');
|
||||
|
||||
|
||||
if ( $num >= 1 ) {
|
||||
if ( $n < $num ) {
|
||||
$res = $str;
|
||||
@ -205,10 +208,10 @@
|
||||
} else {
|
||||
$res = $str;
|
||||
}
|
||||
|
||||
|
||||
return iconv('utf-8','euc-kr',$res);
|
||||
}
|
||||
|
||||
|
||||
private function requestNetCancel() {
|
||||
try {
|
||||
// 예기치 못한 오류인경우 망상취소 시도.
|
||||
@ -441,10 +444,10 @@
|
||||
return "_FAIL_";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function makeHashInputString($salt) {
|
||||
|
||||
|
||||
$result = "";
|
||||
|
||||
for($count = 0;$count < strlen($salt)/2;$count++) {
|
||||
@ -452,14 +455,14 @@
|
||||
$temp1 = hexdec($temp0);
|
||||
$temp3 = reset(unpack("l", pack("l", $temp1 +0xffffff00)));
|
||||
$temp4 = pack('C*', $temp3);
|
||||
|
||||
|
||||
$result = $result.$temp4;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@ -13,13 +13,13 @@ if($is_kakaopay_use) {
|
||||
<input type="hidden" name="GoodsCnt" value="<?php echo ($goods_count + 1); ?>">
|
||||
<input type="hidden" name="BuyerEmail" value="">
|
||||
<input type="hidden" name="BuyerName" value="">
|
||||
<input type="hidden" name="prType" value="WPM">
|
||||
<input type="hidden" name="prType" value="<?php echo (is_mobile() ? 'MPM' : 'WPM'); ?>">
|
||||
<input type="hidden" name="channelType" value="4">
|
||||
<input type="hidden" name="TransType" value="0">
|
||||
<input type="hidden" name="resultCode" value="" id="resultCode">
|
||||
<input type="hidden" name="resultMsg" value="" id="resultMsg">
|
||||
<input type="hidden" name="txnId" value="" id="txnId">
|
||||
<input type="hidden" name="prDt" value=""id="prDt">
|
||||
<input type="hidden" name="prDt" value="" id="prDt">
|
||||
<input type="hidden" name="SPU" value="">
|
||||
<input type="hidden" name="SPU_SIGN_TOKEN" value="">
|
||||
<input type="hidden" name="MPAY_PUB" value="">
|
||||
|
||||
@ -439,6 +439,11 @@ if($tno) {
|
||||
include G5_SHOP_PATH.'/inicis/inipay_cancel.php';
|
||||
break;
|
||||
case 'KAKAOPAY':
|
||||
$_REQUEST['TID'] = $tno;
|
||||
$_REQUEST['Amt'] = $amount;
|
||||
$_REQUEST['CancelMsg'] = $cancel_msg;
|
||||
$_REQUEST['PartialCancelCode'] = 0;
|
||||
include G5_SHOP_PATH.'/kakaopay/kakaopay_cancel.php';
|
||||
break;
|
||||
default:
|
||||
include G5_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php';
|
||||
@ -559,6 +564,11 @@ if(!$result) {
|
||||
include G5_SHOP_PATH.'/inicis/inipay_cancel.php';
|
||||
break;
|
||||
case 'KAKAOPAY':
|
||||
$_REQUEST['TID'] = $tno;
|
||||
$_REQUEST['Amt'] = $amount;
|
||||
$_REQUEST['CancelMsg'] = $cancel_msg;
|
||||
$_REQUEST['PartialCancelCode'] = 0;
|
||||
include G5_SHOP_PATH.'/kakaopay/kakaopay_cancel.php';
|
||||
break;
|
||||
default:
|
||||
include G5_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php';
|
||||
@ -600,6 +610,11 @@ if(!$result) {
|
||||
include G5_SHOP_PATH.'/inicis/inipay_cancel.php';
|
||||
break;
|
||||
case 'KAKAOPAY':
|
||||
$_REQUEST['TID'] = $tno;
|
||||
$_REQUEST['Amt'] = $amount;
|
||||
$_REQUEST['CancelMsg'] = $cancel_msg;
|
||||
$_REQUEST['PartialCancelCode'] = 0;
|
||||
include G5_SHOP_PATH.'/kakaopay/kakaopay_cancel.php';
|
||||
break;
|
||||
default:
|
||||
include G5_SHOP_PATH.'/kcp/pp_ax_hub_cancel.php';
|
||||
|
||||
@ -257,7 +257,7 @@ if($od['od_pg'] == 'lg') {
|
||||
$app_no_subj = '';
|
||||
$disp_bank = true;
|
||||
$disp_receipt = false;
|
||||
if($od['od_settle_case'] == '신용카드') {
|
||||
if($od['od_settle_case'] == '신용카드' || $od['od_settle_case'] == 'KAKAOPAY') {
|
||||
$app_no_subj = '승인번호';
|
||||
$app_no = $od['od_app_no'];
|
||||
$disp_bank = false;
|
||||
@ -396,6 +396,14 @@ if($od['od_pg'] == 'lg') {
|
||||
<a href="javascript:;" onclick="<?php echo $card_receipt_script; ?>">영수증 출력</a>
|
||||
<?php
|
||||
}
|
||||
|
||||
if($od['od_settle_case'] == 'KAKAOPAY')
|
||||
{
|
||||
$card_receipt_script = 'window.open(\'https://mms.cnspay.co.kr/trans/retrieveIssueLoader.do?TID='.$od['od_tno'].'&type=0\', \'popupIssue\', \'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=420,height=540\');';
|
||||
?>
|
||||
<a href="javascript:;" onclick="<?php echo $card_receipt_script; ?>">영수증 출력</a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<td>
|
||||
</td>
|
||||
|
||||
Reference in New Issue
Block a user