mf_clear(); /* ------------------------------------------------------------------------------ */ /* = 02. 인스턴스 생성 및 초기화 END = */ /* ============================================================================== */ /* ============================================================================== */ /* = 03. 처리 요청 정보 설정 = */ /* = -------------------------------------------------------------------------- = */ /* = -------------------------------------------------------------------------- = */ /* = 03-1. 승인 요청 = */ /* = -------------------------------------------------------------------------- = */ if ( $req_tx == "pay" ) { /* 1004원은 실제로 업체에서 결제하셔야 될 원 금액을 넣어주셔야 합니다. 결제금액 유효성 검증 */ $c_PayPlus->mf_set_ordr_data( "ordr_mony", $good_mny ); $kcp_pay_type = ''; // 결제수단 검증 파라미터 pay_type (신용카드 : PACA, 계좌이체 : PABK, 가상계좌 : PAVC, 휴대폰 : PAMC) if ($use_pay_method == "100000000000" && (in_array($od_settle_case, array('신용카드', '간편결제')))) { // 신용카드 $kcp_pay_type = 'PACA'; } else if ($use_pay_method == "010000000000" && $od_settle_case === '계좌이체') { // 계좌이체 $kcp_pay_type = 'PABK'; } else if ($use_pay_method == "001000000000" && $od_settle_case === '가상계좌') { // 가상계좌 $kcp_pay_type = 'PAVC'; } else if ($use_pay_method == "000010000000" && $od_settle_case === '휴대폰') { // 휴대폰 $kcp_pay_type = 'PAMC'; } $c_PayPlus->mf_set_ordr_data( "pay_type", $kcp_pay_type ); $c_PayPlus->mf_set_ordr_data( "ordr_no", $ordr_idxx ); $post_enc_data = isset($_POST['enc_data']) ? $_POST['enc_data'] : ''; $post_enc_info = isset($_POST['enc_info']) ? $_POST['enc_info'] : ''; $c_PayPlus->mf_set_encx_data( $post_enc_data, $post_enc_info ); } /* = -------------------------------------------------------------------------- = */ /* = 03-2. 취소/매입 요청 = */ /* = -------------------------------------------------------------------------- = */ else if ( $req_tx == "mod" ) { $tran_cd = "00200000"; $c_PayPlus->mf_set_modx_data( "tno", $tno ); // KCP 원거래 거래번호 $c_PayPlus->mf_set_modx_data( "mod_type", $mod_type ); // 원거래 변경 요청 종류 $c_PayPlus->mf_set_modx_data( "mod_ip", $cust_ip ); // 변경 요청자 IP $c_PayPlus->mf_set_modx_data( "mod_desc", $mod_desc ); // 변경 사유 } /* = -------------------------------------------------------------------------- = */ /* = 03-3. 에스크로 상태변경 요청 = */ /* = -------------------------------------------------------------------------- = */ else if ($req_tx = "mod_escrow") { $tran_cd = "00200000"; $c_PayPlus->mf_set_modx_data( "tno", $tno ); // KCP 원거래 거래번호 $c_PayPlus->mf_set_modx_data( "mod_type", $mod_type ); // 원거래 변경 요청 종류 $c_PayPlus->mf_set_modx_data( "mod_ip", $cust_ip ); // 변경 요청자 IP $c_PayPlus->mf_set_modx_data( "mod_desc", $mod_desc ); // 변경 사유 if ($mod_type == "STE1") // 상태변경 타입이 [배송요청]인 경우 { $post_deli_numb = isset($_POST['deli_numb']) ? $_POST['deli_numb'] : ''; $post_deli_corp = isset($_POST['deli_corp']) ? $_POST['deli_corp'] : ''; $c_PayPlus->mf_set_modx_data( "deli_numb", $post_deli_numb ); // 운송장 번호 $c_PayPlus->mf_set_modx_data( "deli_corp", $post_deli_corp ); // 택배 업체명 } else if ($mod_type == "STE2" || $mod_type == "STE4") // 상태변경 타입이 [즉시취소] 또는 [취소]인 계좌이체, 가상계좌의 경우 { if ($vcnt_yn == "Y") { $post_refund_account = isset($_POST['refund_account']) ? $_POST['refund_account'] : ''; $post_refund_nm = isset($_POST['refund_nm']) ? $_POST['refund_nm'] : ''; $post_bank_code = isset($_POST['bank_code']) ? $_POST['bank_code'] : ''; $c_PayPlus->mf_set_modx_data( "refund_account", $post_refund_account ); // 환불수취계좌번호 $c_PayPlus->mf_set_modx_data( "refund_nm", $post_refund_nm ); // 환불수취계좌주명 $c_PayPlus->mf_set_modx_data( "bank_code", $post_bank_code ); // 환불수취은행코드 } } } /* = -------------------------------------------------------------------------- = */ /* = 03-3. 에스크로 상태변경 요청 END = */ /* = -------------------------------------------------------------------------- = */ /* ------------------------------------------------------------------------------ */ /* = 03. 처리 요청 정보 설정 END = */ /* ============================================================================== */ /* ============================================================================== */ /* = 04. 실행 = */ /* = -------------------------------------------------------------------------- = */ if ( $tran_cd != "" ) { $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, $g_conf_log_level , 0, 0, $g_conf_key_dir, $g_conf_log_dir); // 응답 전문 처리 $res_cd = $c_PayPlus->m_res_cd; // 결과 코드 $res_msg = $c_PayPlus->m_res_msg; // 결과 메시지 /* $res_en_msg = $c_PayPlus->mf_get_res_data( "res_en_msg" ); // 결과 영문 메세지 */ } else { $c_PayPlus->m_res_cd = "9562"; $c_PayPlus->m_res_msg = "연동 오류|Payplus Plugin이 설치되지 않았거나 tran_cd값이 설정되지 않았습니다."; } if ($res_cd != '0000') { $res_msg = iconv("euc-kr", "utf-8", $res_msg); /* echo ""; */ alert("$res_cd : $res_msg"); exit; } /* = -------------------------------------------------------------------------- = */ /* = 04. 실행 END = */ /* ============================================================================== */ /* ============================================================================== */ /* = 05. 승인 결과 값 추출 = */ /* = -------------------------------------------------------------------------- = */ if ( $req_tx == "pay" ) { if( $res_cd == "0000" ) { $tno = $c_PayPlus->mf_get_res_data( "tno" ); // KCP 거래 고유 번호 $amount = $c_PayPlus->mf_get_res_data( "amount" ); // KCP 실제 거래 금액 $pnt_issue = $c_PayPlus->mf_get_res_data( "pnt_issue" ); // 결제 포인트사 코드 $coupon_mny = $c_PayPlus->mf_get_res_data( "coupon_mny" ); // 쿠폰금액 /* = -------------------------------------------------------------------------- = */ /* = 05-1. 신용카드 승인 결과 처리 = */ /* = -------------------------------------------------------------------------- = */ if ( $use_pay_method == "100000000000" ) { $card_cd = $c_PayPlus->mf_get_res_data( "card_cd" ); // 카드사 코드 $card_name = $c_PayPlus->mf_get_res_data( "card_name" ); // 카드 종류 $app_time = $c_PayPlus->mf_get_res_data( "app_time" ); // 승인 시간 $app_no = $c_PayPlus->mf_get_res_data( "app_no" ); // 승인 번호 $noinf = $c_PayPlus->mf_get_res_data( "noinf" ); // 무이자 여부 ( 'Y' : 무이자 ) $quota = $c_PayPlus->mf_get_res_data( "quota" ); // 할부 개월 수 $partcanc_yn = $c_PayPlus->mf_get_res_data( "partcanc_yn" ); // 부분취소 가능유무 $card_bin_type_01 = $c_PayPlus->mf_get_res_data( "card_bin_type_01" ); // 카드구분1 $card_bin_type_02 = $c_PayPlus->mf_get_res_data( "card_bin_type_02" ); // 카드구분2 $card_mny = $c_PayPlus->mf_get_res_data( "card_mny" ); // 카드결제금액 $od_other_pay_type = $c_PayPlus->mf_get_res_data( "card_other_pay_type" ); // 간편결제유형 $kcp_pay_method = $c_PayPlus->mf_get_res_data( "pay_method" ); // 카카오페이 결제수단 // 카드 코드는 PACA, 카카오머니 코드는 PAKM // https://developer.kcp.co.kr/page/document/directpay if( $kcp_pay_method == "PAKM" ){ // 카카오머니 $card_mny = $kakaomny_mny = $c_PayPlus->mf_get_res_data( "kakaomny_mny" ); $app_time = $app_kakaomny_time = $c_PayPlus->mf_get_res_data( "app_kakaomny_time" ); $od_other_pay_type = 'NHNKCP_KAKAOMONEY'; } else if( $kcp_pay_method == "PANP" ){ // 네이버페이머니 $od_other_pay_type = 'NHNKCP_NAVERMONEY'; } /* = -------------------------------------------------------------- = */ /* = 05-1.1. 복합결제(포인트+신용카드) 승인 결과 처리 = */ /* = -------------------------------------------------------------- = */ if ( $pnt_issue == "SCSK" || $pnt_issue == "SCWB" ) { $pt_idno = $c_PayPlus->mf_get_res_data ( "pt_idno" ); // 결제 및 인증 아이디 $pnt_amount = $c_PayPlus->mf_get_res_data ( "pnt_amount" ); // 적립금액 or 사용금액 $pnt_app_time = $c_PayPlus->mf_get_res_data ( "pnt_app_time" ); // 승인시간 $pnt_app_no = $c_PayPlus->mf_get_res_data ( "pnt_app_no" ); // 승인번호 $add_pnt = $c_PayPlus->mf_get_res_data ( "add_pnt" ); // 발생 포인트 $use_pnt = $c_PayPlus->mf_get_res_data ( "use_pnt" ); // 사용가능 포인트 $rsv_pnt = $c_PayPlus->mf_get_res_data ( "rsv_pnt" ); // 총 누적 포인트 $total_amount = $amount + $pnt_amount; // 복합결제시 총 거래금액 } } /* = -------------------------------------------------------------------------- = */ /* = 05-2. 계좌이체 승인 결과 처리 = */ /* = -------------------------------------------------------------------------- = */ if ( $use_pay_method == "010000000000" ) { $app_time = $c_PayPlus->mf_get_res_data( "app_time" ); // 승인 시간 $bank_name = $c_PayPlus->mf_get_res_data( "bank_name" ); // 은행명 $bank_code = $c_PayPlus->mf_get_res_data( "bank_code" ); // 은행코드 $bk_mny = $c_PayPlus->mf_get_res_data( "bk_mny" ); // 계좌이체결제금액 } /* = -------------------------------------------------------------------------- = */ /* = 05-3. 가상계좌 승인 결과 처리 = */ /* = -------------------------------------------------------------------------- = */ if ( $use_pay_method == "001000000000" ) { $bankname = $c_PayPlus->mf_get_res_data( "bankname" ); // 입금할 은행 이름 $depositor = $c_PayPlus->mf_get_res_data( "depositor" ); // 입금할 계좌 예금주 $account = $c_PayPlus->mf_get_res_data( "account" ); // 입금할 계좌 번호 $va_date = $c_PayPlus->mf_get_res_data( "va_date" ); // 가상계좌 입금마감시간 } /* = -------------------------------------------------------------------------- = */ /* = 05-4. 포인트 승인 결과 처리 = */ /* = -------------------------------------------------------------------------- = */ if ( $use_pay_method == "000100000000" ) { $pt_idno = $c_PayPlus->mf_get_res_data( "pt_idno" ); // 결제 및 인증 아이디 $pnt_amount = $c_PayPlus->mf_get_res_data( "pnt_amount" ); // 적립금액 or 사용금액 $pnt_app_time = $c_PayPlus->mf_get_res_data( "pnt_app_time" ); // 승인시간 $pnt_app_no = $c_PayPlus->mf_get_res_data( "pnt_app_no" ); // 승인번호 $add_pnt = $c_PayPlus->mf_get_res_data( "add_pnt" ); // 발생 포인트 $use_pnt = $c_PayPlus->mf_get_res_data( "use_pnt" ); // 사용가능 포인트 $rsv_pnt = $c_PayPlus->mf_get_res_data( "rsv_pnt" ); // 적립 포인트 } /* = -------------------------------------------------------------------------- = */ /* = 05-5. 휴대폰 승인 결과 처리 = */ /* = -------------------------------------------------------------------------- = */ if ( $use_pay_method == "000010000000" ) { $app_time = $c_PayPlus->mf_get_res_data( "hp_app_time" ); // 승인 시간 $commid = $c_PayPlus->mf_get_res_data( "commid" ); // 통신사 코드 $mobile_no = $c_PayPlus->mf_get_res_data( "mobile_no" ); // 휴대폰 번호 } /* = -------------------------------------------------------------------------- = */ /* = 05-6. 상품권 승인 결과 처리 = */ /* = -------------------------------------------------------------------------- = */ if ( $use_pay_method == "000000001000" ) { $app_time = $c_PayPlus->mf_get_res_data( "tk_app_time" ); // 승인 시간 $tk_van_code = $c_PayPlus->mf_get_res_data( "tk_van_code" ); // 발급사 코드 $tk_app_no = $c_PayPlus->mf_get_res_data( "tk_app_no" ); // 승인 번호 } /* = -------------------------------------------------------------------------- = */ /* = 05-7. 현금영수증 결과 처리 = */ /* = -------------------------------------------------------------------------- = */ $cash_yn = $c_PayPlus->mf_get_res_data( "cash_yn" ); // 현금영수증 등록여부 $cash_authno = $c_PayPlus->mf_get_res_data( "cash_authno" ); // 현금 영수증 승인 번호 $cash_tr_code = $c_PayPlus->mf_get_res_data( "cash_tr_code" ); // 현금영수증 등록구분 /* = -------------------------------------------------------------------------- = */ /* = 05-8. 에스크로 여부 결과 처리 = */ /* = -------------------------------------------------------------------------- = */ $escw_yn = $c_PayPlus->mf_get_res_data( "escw_yn" ); // 에스크로 여부 } } /* = -------------------------------------------------------------------------- = */ /* = 05. 승인 결과 처리 END = */ /* ============================================================================== */;