카카오페이 모바일 결제 추가

This commit is contained in:
chicpro
2015-09-16 10:44:36 +09:00
parent 3562596484
commit bce9370deb
10 changed files with 183 additions and 38 deletions

View 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);
?>

View File

@ -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);

View File

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

View File

@ -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="">