328 lines
15 KiB
PHP
328 lines
15 KiB
PHP
<?
|
|
session_start();
|
|
include $_SERVER[DOCUMENT_ROOT] . "/common/conf/config.inc.php";
|
|
include $_SERVER[DOCUMENT_ROOT] . "/module/category/category.lib.php";
|
|
include $_SERVER[DOCUMENT_ROOT] . "/module/shop/shop.lib.php";
|
|
include $_SERVER[DOCUMENT_ROOT] . "/module/mail/mail.lib.php";
|
|
include $_SERVER[DOCUMENT_ROOT] . "/module/point/point.lib.php";
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// 올더게이트 모바일 승인 페이지 (EUC-KR)
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
require_once ("./lib/AGSMobile.php");
|
|
|
|
$tracking_id = $_REQUEST["tracking_id"];
|
|
$transaction = $_REQUEST["transaction"];
|
|
$StoreId = $_REQUEST["StoreId"];
|
|
$log_path = null;
|
|
// log파일 저장할 폴더의 경로를 지정합니다.
|
|
// 경로의 값이 null로 되어있을 경우 "현재 작업 디렉토리의 /lib/log/"에 저장됩니다.
|
|
|
|
$agsMobile = new AGSMobile($store_id,$tracking_id,$transaction, $log_path);
|
|
$agsMobile->setLogging(true); //true : 로그기록, false : 로그기록안함.
|
|
|
|
////////////////////////////////////////////////////////
|
|
//
|
|
// getTrackingInfo() 는 최초 올더게이트 페이지를 호출할 때 전달 했던 Form 값들이 Array()로 저장되어 있습니다.
|
|
//
|
|
////////////////////////////////////////////////////////
|
|
|
|
$info = $agsMobile->getTrackingInfo(); //$info 변수는 array() 형식입니다.
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
// -- tracking_info에 들어있는 컬럼 --
|
|
//
|
|
// 결제방법 : AuthTy (card,hp,virtual)
|
|
// 서브결제방법 : SubTy (카드일 경우 세팅 : isp,visa3d)
|
|
//
|
|
// 회원아이디 : UserId
|
|
// 구매자이름 : OrdNm
|
|
// 상점이름 : StoreNm
|
|
// 결제방법 : Job
|
|
// 상품명 : ProdNm
|
|
//
|
|
// 휴대폰번호 : OrdPhone
|
|
// 수신자명 : RcpNm
|
|
// 수신자연락처 : RcpPhone
|
|
// 주문자주소 : OrdAddr
|
|
// 주문번호 : OrdNo
|
|
// 배송지주소 : DlvAddr
|
|
// 상품코드 : ProdCode
|
|
// 입금예정일 : VIRTUAL_DEPODT
|
|
// 상품종류 : HP_UNITType
|
|
// 성공 URL : RtnUrl
|
|
// 상점아이디 : StoreId
|
|
// 가격 : Amt
|
|
// 이메일 : UserEmail
|
|
// 상점URL : MallUrl
|
|
// 취소 URL : CancelUrl
|
|
// 통보페이지 : MallPage
|
|
//
|
|
// 기타요구사항 : Remark
|
|
// 추가사용필드1 : Column1
|
|
// 추가사용필드1 : Column2
|
|
// 추가사용필드1 : Column3
|
|
// CP아이디 : HP_ID
|
|
// CP비밀번호 : HP_PWD
|
|
// SUB-CP아이디 : HP_SUBID
|
|
// 상품코드 : ProdCode
|
|
// 결제정보 : DeviId ( 9000400001:일반결제, 9000400002:무이자결제)
|
|
// 카드사선택 : CardSelect
|
|
// 할부기간 : QuotaInf
|
|
// 무이자 할부기간: NointInf
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// tracking_info의 정보들은 아래의 방법으로 가져오시면 됩니다
|
|
//
|
|
// print_r($info); //tracking_info
|
|
// echo "주문번호 : ".$info["OrdNo"]."</br>";
|
|
// echo "상품명 : ".$info["ProdNm"]."</br>";
|
|
// echo "결제방법 : ".$info["Job"]."</br>";
|
|
// echo "회원아이디 : ".$info["UserId"]."</br>";
|
|
// echo "구매자이름 : ".$info["OrdNm"]."</br>";
|
|
//
|
|
|
|
echo "AuthTy : ".$info["AuthTy"]."</br>";
|
|
echo "SubTy : ".$info["SubTy"]."</br>";
|
|
|
|
|
|
$ret = $agsMobile->approve();
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// 결제결과에 따른 상점DB 저장 및 기타 필요한 처리작업을 수행하는 부분입니다.
|
|
// 아래의 결과값들을 통하여 각 결제수단별 결제결과값을 사용하실 수 있습니다.
|
|
//
|
|
// $ret는 array() 형식으로 다음과 같은 구조를 가집니다.
|
|
//
|
|
// $ret = array (
|
|
// 'status' => 'ok' | 'error' //승인성공일 경우 ok , 실패면 error
|
|
// 'message' => '에러일 경우 에러메시지'
|
|
// 'data' => 결제수단별 정보 array() //승인성공일 경우만 세팅됩니다.
|
|
// )
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
if ($ret['status'] == "ok") {
|
|
/// 승인 성공
|
|
|
|
echo "성공여부: ".$ret['status']."<br/>"; //ok이면 성공..
|
|
echo "결과메시지: ".$ret["message"]."<br/>";
|
|
|
|
|
|
//data 이하에 서버 응답 메시지가 있습니다.
|
|
echo "업체ID : ".$ret["data"]["StoreId"]."<br/>";
|
|
echo "주문번호: ".$ret["data"]["OrdNo"]."<br/>";
|
|
echo "거래금액: ".$ret["data"]["Amt"]."원 <br/>";
|
|
echo "tracking_id: ".$tracking_id."<br/>";
|
|
|
|
|
|
|
|
if($ret["paytype"] == "card"){
|
|
|
|
/// 카드 결제 후 받은 정보
|
|
/*
|
|
echo "AuthTy : ".$ret["data"]["AuthTy"]."<br/>";
|
|
echo "SubTy: ".$ret["data"]["SubTy"]."<br/>";
|
|
|
|
echo "업체ID : ".$ret["data"]["StoreId"]."<br/>";
|
|
echo "망취소ID : ".$ret["data"]["NetCancelId"]."<br/>";
|
|
echo "주문번호: ".$ret["data"]["OrdNo"]."<br/>";
|
|
echo "거래금액: ".$ret["data"]["Amt"]."원 <br/>";
|
|
echo "에스크로여부 : ".$ret["data"]["EscrowYn"]."<br/>"; //y이면 escrow
|
|
echo "무이자여부: ".$ret["data"]["NoInt"]."<br/>"; //y이면 무이자
|
|
echo "에스크로전문번호 : ".$ret["data"]["EscrowSendNo"]."<br/>";
|
|
|
|
|
|
echo "전문코드 : ".$ret["data"]["BusiCd"]."<br/>";
|
|
echo "거래번호: ".$ret["data"]["DealNo"]."<br/>";
|
|
echo "승인번호: ".$ret["data"]["AdmNo"]."<br/>";
|
|
echo "승인시각: ".$ret["data"]['AdmTime']."<br/>";
|
|
echo "카드사코드: ".$ret["data"]["CardCd"]."<br/>";
|
|
echo "카드사명: ".$ret["data"]["CardNm"]."<br/>";
|
|
echo "할부개월수: ".$ret["data"]["PartialMm"]."<br/>";
|
|
*/
|
|
//DB연결
|
|
$dblink = SetConn($_conf_db["main_db"]);
|
|
|
|
//주문건 업데이트
|
|
$blnRS = updatePayState("card", $ret["data"]["OrdNo"], "M");
|
|
/////////////////////////////////////////
|
|
//
|
|
// 카드 거래의 경우,
|
|
// 상점 DB 및 기타 상점측 예외상황으로 결제를 바로 취소해야 한다면
|
|
// 아래의 승인 이후 아래의 함수 호출로 취소가 가능합니다.
|
|
//
|
|
/////////////////////////////////////////
|
|
|
|
// 아래 부분을 주석해제 하면 바로 강제 취소 할 수 있습니다. (카드 정상 승인 이후에만 가능)
|
|
|
|
|
|
/*
|
|
$cancelRet = $agsMobile->forceCancel();
|
|
|
|
// 상점은 아래에서 처리하세요
|
|
if ($cancelRet['status'] == "ok") {
|
|
echo "취소 성공<br/>";
|
|
echo "업체ID : ".$cancelRet["data"]["StoreId"]."<br/>";
|
|
echo "승인번호: ".$cancelRet["data"]["AdmNo"]."<br/>";
|
|
echo "승인시각: ".$cancelRet["data"]["AdmTime"]."<br/>";
|
|
echo "코드: ".$cancelRet["data"]['Code']."<br/>";
|
|
|
|
}else {
|
|
//취소 통신 실패
|
|
echo "취소 실패 : ".$cancelRet['message']; // 에러 메시지
|
|
}
|
|
*/
|
|
|
|
//////////////////////////////////////////////
|
|
//
|
|
// 영수증 사용시 아래의 링크를 사용하시면 됩니다.
|
|
//
|
|
//////////////////////////////////////////////
|
|
|
|
$url = "http://www.allthegate.com/customer/receiptLast3.jsp";
|
|
$url .= "?sRetailer_id=".$ret["data"]["StoreId"];
|
|
$url .= "?approve=".$ret["data"]["AdmNo"];
|
|
$url .= "?send_no=".$ret["data"]["DealNo"];
|
|
$url .= "?send_dt=".substr($ret["data"]["AdmTime"],0,8);
|
|
|
|
}else if($ret["paytype"] == "hp"){
|
|
/// 핸드폰 결제 후 받은 정보
|
|
echo "AuthTy : ".$ret["data"]["AuthTy"]."<br/>";
|
|
echo "SubTy: ".$ret["data"]["SubTy"]."<br/>";
|
|
|
|
echo "업체ID : ".$ret["data"]["StoreId"]."<br/>";
|
|
echo "망취소ID : ".$ret["data"]["NetCancelId"]."<br/>";
|
|
echo "주문번호: ".$ret["data"]["OrdNo"]."<br/>";
|
|
echo "거래금액: ".$ret["data"]["Amt"]."원 <br/>";
|
|
|
|
echo "핸드폰통신사 : ".$ret["data"]["PhoneCompany"]."<br/>";
|
|
echo "핸드폰번호 : ".$ret["data"]["Phone"]."<br/>";
|
|
echo "핸드폰결제 TID : ".$ret["data"]["AdmTID"]."<br/>";
|
|
|
|
//주문건 업데이트
|
|
$blnRS = updatePayState("hp", $ret["data"]["OrdNo"], "M");
|
|
|
|
/////////////////////////////////////////
|
|
//
|
|
// 휴대폰 거래의 경우,
|
|
// 상점 DB 및 기타 상점측 예외상황으로 결제를 바로 취소해야 한다면
|
|
// 아래의 승인 이후 아래의 함수 호출로 취소가 가능합니다.
|
|
//
|
|
/////////////////////////////////////////
|
|
|
|
// 아래 부분을 주석해제 하면 바로 강제 취소 할 수 있습니다. (휴대폰 정상 승인 이후에만 가능)
|
|
|
|
// $cancelRet = $agsMobile->forceCancel();
|
|
//
|
|
// // 상점은 아래에서 처리하세요
|
|
// if ($cancelRet['status'] == "ok") {
|
|
//
|
|
// echo "업체ID : ".$cancelRet["data"]["StoreId"]."<br/>";
|
|
// echo "핸드폰결제 TID : ".$cancelRet["data"]["AdmTID"]."<br/>";
|
|
//
|
|
// }else {
|
|
// //취소 통신 실패
|
|
// echo "취소 실패 : ".$cancelRet['message']; // 에러 메시지
|
|
// }
|
|
|
|
}else if($ret["paytype"] == "virtual"){
|
|
/// 가상계좌 처리 후 받은 정보 ///
|
|
|
|
////////////////////////////////////////////////////////
|
|
//
|
|
// 가상계좌의 결제성공은 가상계좌발급의 성공만을 의미하며 입금대기상태로 실제 고객이 입금을 완료한 것은 아닙니다.
|
|
// 따라서 가상계좌 결제완료시 결제완료로 처리하여 상품을 배송하시면 안됩니다.
|
|
// 결제후 고객이 발급받은 계좌로 입금이 완료되면 MallPage(상점 입금통보 페이지(가상계좌))로 입금결과가 전송되며
|
|
// 이때 비로소 결제가 완료되게 되므로 결제완료에 대한 처리(배송요청 등)은 MallPage에 작업해주셔야 합니다.
|
|
//
|
|
// 승인일자 : $ret["data"]["SuccessTime"]
|
|
// 가상계좌번호 : $ret["data"]["VirtualNo"]
|
|
// 입금은행코드 : $ret["data"]["BankCode"]
|
|
//
|
|
////////////////////////////////////////////////////////
|
|
|
|
echo "AuthTy : ".$ret["data"]["AuthTy"]."<br/>";
|
|
echo "SubTy: ".$ret["data"]["SubTy"]."<br/>";
|
|
|
|
|
|
echo "업체ID : ".$ret["data"]["StoreId"]."<br/>";
|
|
echo "망취소ID : ".$ret["data"]["NetCancelId"]."<br/>";
|
|
echo "주문번호: ".$ret["data"]["OrdNo"]."<br/>";
|
|
echo "거래금액: ".$ret["data"]["Amt"]."원 <br/>";
|
|
echo "에스크로여부 : ".$ret["data"]["EscrowYn"]."<br/>"; //y이면 escrow
|
|
echo "에스크로전문번호 : ".$ret["data"]["EscrowSendNo"]."<br/>";
|
|
|
|
echo "승인일자 : ".$ret["data"]["SuccessTime"]."<br/>";
|
|
echo "가상계좌번호 : ".$ret["data"]["VirtualNo"]."<br/>";
|
|
echo "입금은행코드 : ".$ret["data"]["BankCode"]."<br/>";
|
|
echo "입금기한 : ".$ret["data"]["DueDate"]."<br/>";
|
|
}
|
|
|
|
|
|
|
|
}else {
|
|
/// 승인 실패
|
|
echo "승인실패 : ".$ret['message']."<br/>"; // 에러 메시지
|
|
exit;
|
|
}
|
|
|
|
?>
|
|
|
|
<html>
|
|
<head>
|
|
</head>
|
|
<body onload="javascript:frmAGS_pay_ing.submit();">
|
|
<form name=frmAGS_pay_ing method=post action="/shop.php">
|
|
<input type=hidden name=goPage value="Thanks">
|
|
<input type=hidden name=order_no value="<?=$ret["data"]["OrdNo"]?>">
|
|
<input type=hidden name=charge_type value="1">
|
|
|
|
<!-- 각 결제 공통 사용 변수 -->
|
|
<input type=hidden name=AuthTy value="<?=$ret["data"]["paytype"]?>"> <!-- 결제형태 -->
|
|
<input type=hidden name=SubTy value="<?=$ret["data"]["SubTy"]?>"> <!-- 서브결제형태 -->
|
|
<input type=hidden name=rStoreId value="<?=$ret["data"]["StoreId"]?>"> <!-- 상점아이디 -->
|
|
<input type=hidden name=rOrdNo value="<?=$ret["data"]["OrdNo"]?>"> <!-- 주문번호 -->
|
|
<input type=hidden name=rProdNm value="<?=$ret["data"]["ProdNm"]?>"> <!-- 상품명 -->
|
|
<input type=hidden name=rAmt value="<?=$ret["data"]["Amt"]?>"> <!-- 결제금액 -->
|
|
<input type=hidden name=rOrdNm value="<?=$ret["data"]["OrdNm"]?>"> <!-- 주문자명 -->
|
|
<!--input type=hidden name=AGS_HASHDATA value="<?=$AGS_HASHDATA?>"> <!-- 암호화 HASHDATA -->
|
|
|
|
<input type=hidden name=rSuccYn value="<?=$ret['status']?>"> <!-- 성공여부 -->
|
|
<input type=hidden name=rResMsg value="<?=$ret["message"]?>"> <!-- 결과메시지 -->
|
|
<input type=hidden name=rApprTm value="<?=$ret["data"]["AdmTime"]?>"> <!-- 결제시간 -->
|
|
|
|
<!-- 신용카드 결제 사용 변수 -->
|
|
<input type=hidden name=rBusiCd value="<?=$ret["data"]["BusiCd"]?>"> <!-- (신용카드공통)전문코드 -->
|
|
<input type=hidden name=rApprNo value="<?=$ret["data"]["AdmNo"]?>"> <!-- (신용카드공통)승인번호 -->
|
|
<input type=hidden name=rCardCd value="<?=$ret["data"]["CardCd"]?>"> <!-- (신용카드공통)카드사코드 -->
|
|
<input type=hidden name=rDealNo value="<?=$ret["data"]["DealNo"]?>"> <!-- (신용카드공통)거래번호 -->
|
|
|
|
<input type=hidden name=rCardNm value="<?=$ret["data"]["CardNm"]?>"> <!-- (안심클릭,일반사용)카드사명 -->
|
|
<input type=hidden name=rMembNo value="<?=$ret["data"]["MembNo"]?>"> <!-- (안심클릭,일반사용)가맹점번호 -->
|
|
<input type=hidden name=rAquiCd value="<?=$ret["data"]["AquiCd"]?>"> <!-- (안심클릭,일반사용)매입사코드 -->
|
|
<input type=hidden name=rAquiNm value="<?=$ret["data"]["AquiNm"]?>"> <!-- (안심클릭,일반사용)매입사명 -->
|
|
|
|
<!-- 핸드폰 결제 사용 변수 -->
|
|
<input type=hidden name=rHP_HANDPHONE value="<?=$ret["data"]["Phone"]?>"> <!-- 핸드폰번호 -->
|
|
<input type=hidden name=rHP_COMPANY value="<?=$ret["data"]["PhoneCompany"]?>"> <!-- 통신사명(SKT,KTF,LGT) -->
|
|
<input type=hidden name=rHP_TID value="<?=$ret["data"]["AdmTID"]?>"> <!-- 결제TID -->
|
|
<input type=hidden name=rHP_DATE value="<?=$ret["data"]["rHP_DATE"]?>"> <!-- 결제일자 -->
|
|
|
|
<!-- 가상계좌 결제 사용 변수 -->
|
|
<input type=hidden name=rVirNo value="<?=$ret["data"]["VirtualNo"]?>"> <!-- 가상계좌번호 -->
|
|
<input type=hidden name=VIRTUAL_CENTERCD value="<?=$ret["data"]["BankCode"]?>"> <!--입금가상계좌은행코드(우리은행:20) -->
|
|
|
|
<!-- 이지스에스크로 결제 사용 변수 -->
|
|
<input type=hidden name=ES_SENDNO value="<?=$ret["data"]["ES_SENDNO"]?>"> <!-- 이지스에스크로(전문번호) -->
|
|
|
|
</form>
|
|
</body>
|
|
</html>
|