ÿØÿà JFIF ` ` ÿþ
Server : Apache System : Linux ruga7-004.fmcity.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : tkt_travelbus ( 1137) PHP Version : 7.0.0p1 Disable Function : mysql_pconnect Directory : /tkt_travelbus/www/ty_test/ |
Upload File : |
<?php header('Content-Type: text/html; charset=UTF-8'); error_reporting( E_ALL ); ini_set( "display_errors", 1 ); include $_SERVER['DOCUMENT_ROOT'].'/include/base.php'; include $_SERVER['DOCUMENT_ROOT'].'/process/process_common.php'; $memberID = $_SESSION['web_member']['mb_id']; echo '<pre>'; var_dump($_POST); echo '</pre>'; /* * Nicepay 결제 결과 */ //include "../include/top.html"; //include "_common.php"; //deanLog("NicepayResult Start"); // 로그인체크 //if( $TO_MB['mb_level']>$cf['reserv_level'] ) movepage("/"); //echo '<pre>'; //var_dump($_POST); //echo '</pre>'; //exit; // 총결제액 $total_pay = 0; $total_pay_fr = 0; // //echo '<pre>'; //var_dump($_POST); //echo '</pre>'; //exit; /****************************************************** * <결제승인 파라미터> ******************************************************/ $merchantKey = "mW1r6ggFYVl+cCv9gngBmAWNjfCnotcUJx8RNOhVYfdGm0EF8Qtwc3ZpDq3aCRAPvHNwr3VgzAsOL7M5jR0KAw=="; // 상점키 /**************************************************************************************** * <인증 결과 파라미터> ****************************************************************************************/ $authResultCode = $_POST['AuthResultCode']; // 인증결과 : 0000(성공) $authResultMsg = $_POST['AuthResultMsg']; // 인증결과 메시지 $nextAppURL = $_POST['NextAppURL']; // 승인 요청 URL $txTid = $_POST['TxTid']; // 거래 ID $authToken = $_POST['AuthToken']; // 인증 TOKEN $payMethod = $_POST['PayMethod']; // 결제수단 $mid = $_POST['MID']; // 상점 아이디 $moid = $_POST['Moid']; // 상점 주문번호 $amt = $_POST['Amt']; // 결제 금액 $reqReserved = $_POST['ReqReserved']; // 상점 예약필드 $netCancelURL = $_POST['NetCancelURL']; // 망취소 요청 URL /**************************************************************************************** * <승인 결과 파라미터 정의> * 샘플페이지에서는 승인 결과 파라미터 중 일부만 예시되어 있으며, * 추가적으로 사용하실 파라미터는 연동메뉴얼을 참고하세요. ****************************************************************************************/ $response = ""; $paySuccess = false; if($authResultCode === "0000"){ /**************************************************************************************** * <해쉬암호화> (수정하지 마세요) * SHA-256 해쉬암호화는 거래 위변조를 막기위한 방법입니다. ****************************************************************************************/ $ediDate = date("YmdHis"); $signData = bin2hex(hash('sha256', $authToken . $mid . $amt . $ediDate . $merchantKey, true)); try{ $NiceData = Array( 'TID' => $txTid, 'AuthToken' => $authToken, 'MID' => $mid, 'Amt' => $amt, 'EdiDate' => $ediDate, 'SignData' => $signData, 'CharSet' => 'utf-8' ); $response = reqPost($NiceData, $nextAppURL); //승인 호출 $respArr = json_decode($response, true); p($respArr); /* [ResultCode] => 3001 [ResultMsg] => 카드 결제 성공 [MsgSource] => PG [Amt] => 000000000100 [MID] => tktravel1m [Moid] => T1698067220B5B2FA9 [BuyerEmail] => tktraveldeveloper@icloud.com [BuyerTel] => 01021330111 [BuyerName] => 김태영 [GoodsName] => - [TID] => tktravel1m01012310232224356044 [AuthCode] => [AuthDate] => 231023222435 [PayMethod] => CARD [CartData] => [Signature] => 8bfe04b683fb1bab9e95d5a5ecd8b8aa3055ca12f04ba695153a0729908f386a [MallReserved] => [CardCode] => 40 [CardName] => 카카오머니 [CardNo] => **** [CardQuota] => 00 [CardInterest] => 0 [AcquCardCode] => 40 [AcquCardName] => 카카오머니 [CardCl] => 0 [CcPartCl] => 1 [CouponAmt] => 000000000000 [CouponMinAmt] => 000000000000 [PointAppAmt] => 000000000000 [ClickpayCl] => 16 [MultiCl] => 0 [MultiCardAcquAmt] => 0 [MultiPointAmt] => 100 [MultiCouponAmt] => 0 [RcptType] => [RcptTID] => [RcptAuthCode] => [CardType] =>*/ // 공통 파라미터 $resultCode = $respArr["ResultCode"]; // 결과코드 (정상 결과코드:3001) $resultMsg = $respArr["ResultMsg"]; // 결과메시지 $amt = $respArr["Amt"]; // 금액 $mid = $respArr["MID"]; // 상점ID $moid = $respArr["Moid"]; // 주문번호 $Signature = $respArr["Signature"]; // 위변조검증 $buyerName = $respArr["BuyerName"]; // 구매자명 $buyerEmail = $respArr["BuyerEmail"]; // 구매자메일 $buyerTel = $respArr["BuyerTel"]; // 구매자전화 $goodsName = $respArr["GoodsName"]; // 상품명 $tid = $respArr["TID"]; // 거래ID $authCode = $respArr["AuthCode"]; // 승인번호 $authDate = $respArr["AuthDate"]; // 승인일시 (YYMMDDHH24mmss) $PayMethod = $respArr["PayMethod"]; // 결제수단 $MallReserved = $respArr["MallReserved"]; // 여분필드 // 카드 파라미터 $cardCode = $respArr["CardCode"]; // 결제카드사코드 $cardName = $respArr["CardName"]; // 결제카드사명 $cardNo = $respArr["CardNo"]; // 결제카드번호 $ClickpayCl = $respArr["ClickpayCl"]; // 간편결제구분 (16 Kakao, 20 Naver) // 간편결제 if($ClickpayCl == 16) { $cardName = "카카오페이(".$cardName.")"; } else if($ClickpayCl == 20) { $cardName = "네이버페이(".$cardName.")"; } // 성공여부 확인 if($payMethod == "CARD" && $resultCode == "3001") { $paySuccess = true; // 신용카드(정상 결과코드:3001) } else { throw new Exception('결제가 정상적으로 이루어지지 않았습니다.'); } }catch(Exception $e){ $e->getMessage(); $NiceData = Array( 'TID' => $txTid, 'AuthToken' => $authToken, 'MID' => $mid, 'Amt' => $amt, 'EdiDate' => $ediDate, 'SignData' => $signData, 'NetCancel' => '1', 'CharSet' => 'utf-8' ); $response = reqPost($NiceData, $netCancelURL); //예외 발생시 망취소 진행 } }else{ //인증 실패 하는 경우 결과코드, 메시지 $ResultCode = $authResultCode; $ResultMsg = $authResultMsg; } //Post api call function reqPost(Array $NiceData, $url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); //connection timeout 15 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($NiceData)); //POST data curl_setopt($ch, CURLOPT_POST, true); $response = curl_exec($ch); curl_close($ch); return $response; } //입금 데이터 넣기 if($paySuccess){ $buyr_name = $buyerName; $buyr_mail = $buyerEmail; $pg_tno = $tid; // 주문번호 $bank_cd = $cardCode; // 카드사코드 $bank_nm = $cardName; // 카드사명 $bank_number = $cardNo; // 카드번호 $amt = (int) $amt; // 입금완료 처리 $sql = "INSERT INTO TB_ACCOUNT_CUSTOMER SET "; $sql .= " res_no='{$moid}' "; $sql .= " ,acc_dt=curdate()"; $sql .= " ,acnt_cd='MOCU002'"; // 카드결제code $sql .= " ,bank_plus='{$amt}'"; $sql .= " ,pgcase_cd='INST002'"; $sql .= " ,ins_dt=now()"; $sql .= " ,bank_cd='{$bank_cd}'"; $sql .= " ,bank_nm='{$bank_nm}'"; $sql .= " ,bank_number='{$bank_number}'"; $sql .= " ,pg_suply='nice'"; $sql .= " ,pg_tno='{$pg_tno}'"; $sql .= " ,pg_mid='{$mid}'"; $sql .= " ,us_cent={$amt}"; $sql .= " ,ins_mb_id='{$memberID}'"; if($db_connect->query($sql)){ $msg = _e('결제가 완료되었습니다.'); echo "<script>alert('{$msg}');location.href='/page/my-reservation.html';</script>"; exit; }else{ $msg = _e('결제실패 - 관리자에게 문의하세요.'); echo "<script>alert('{$msg}');location.href='/';</script>"; exit; } } ?> <!-- container --> <div id="container"> <div id="contBody"> <!-- contents --> <div id="contents"> <div class="contents_wrap"> <!-- 내용 --> <div class="reserve_wrap" > <h5>01 . <?=_e("상품 정보");?></h5> <table border="0" cellspacing="0" cellpadding="0" width="100%" summary="예약번호, 상품타입, 상품명, 출발일, 상품금액 및 예약상태를 확인하실 수 있습니다." class="table_t mb30"> <caption>상품 정보</caption> <colgroup> <col width="170px" /> <col width="150px" /> <col width="*" /> <col width="100px" /> <col width="120px" /> <col width="100px" /> </colgroup> <thead> <tr> <th>예약번호</th> <th>상품타입</th> <th>상품명</th> <th>날짜</th> <th>상품금액</th> <th>예약상태</th> </tr> </thead> <tbody> <? for($i=0 ; $i<count($data) ;$i++) { $row = $data[$i]; $total_pay += $row['pre_money']; $total_pay_fr += $row['pre_money_fr']; ?> <tr> <td><?=$row['res_no']?></td><!-- 예약번호 --> <td><?=$row['tab_nm']?></td><!-- 상품타입 --> <td class="name"><?=$row['real_good_nm']?> / <?=$row['good_nm']?></td><!-- 상품명 --> <td><?=$row['d_start']?></td><!-- 출발일(입실일) --> <td class="align_r"><?=_eunit($row['price_sell_total_fr'])?></td><!-- 상품금액 --> <td><font color="<?=$row['res_stat_cd_color']?>"><strong><?=$row['res_stat_cd_str']?></strong></font></td><!-- 예약상태 --> </tr> <? } ?> </tbody> </table> <table border="0" cellspacing="0" cellpadding="0" width="100%" summary="충 결제금액을 확인하실 수 있습니다." class="table_l mb30"> <caption>결제 금액</caption> <colgroup> <col width="170px" /> <col width="*" /> </colgroup> <tr> <th>총결제금액</th> <td class="total_price"> <? echo $cf['pay_currency'] . number_format($total_pay_real); ?> </td><!-- 총결제금액 --> </tr> </tbody> </table> <? // 신용카드 결제결과 if ( $payMethod == "CARD" ) // 신용카드 { ?> <h5>결제 정보</h5> <table width="100%" align="center" cellpadding="0" cellspacing="0" summary="결제 수단,카드 승인 및 할부관련 정보를 확인하실 수 있습니다." class="table_l mb30"> <caption>결제 정보</caption> <colgroup> <col width="170px" /> <col width="330px" /> <col width="170px" /> <col width="*" /> </colgroup> <tr> <th>결제수단</th> <td>신용카드</td> <th>결제카드</th> <td><?=$cardName?> / <?=$cardNo?></td> </tr> <tr> <th>승인시간</th> <td><?=substr($authDate,0,6)?> <?=substr($authDate,6,6)?></td> <th>승인번호</th> <td><?=$authCode?></td> </tr> <tr> <th>처리결과</th> <td colspan="3"><?=$resultMsg?></td> </tr> <tr> <th>영수증 확인</th> <td colspan="3"><strong><a href="javascript:receiptView('<?=$tid?>')">영수증 확인</a></strong></td> </tr> </table> <? } ?> <ul class="btn_wrap"> <li class="btn_ok"><a href="/">확인</a></li> </ul> </div> <!-- /reserve_wrap --> </div> <!-- /contents_wrap --> </div> <!-- /contents --> </div> <!-- /contBody --> </div> <!-- /container -->