CI 묻고 답하기

제목 kcp 모바일 결제 모듈 설치중에 undefine error가 납니다.
글쓴이 료단 작성시각 2015/07/08 10:26:47
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 21015   RSS
카드 결제중에 isp 인증후 결과 받는 페이지를 아래 소스 처럼해서

연결 했는데 일단 결제 모듈에서 성공 메시지는 출력이 되는데

아래 소스 실행 부분에서 
$trace_no,  my_data 등이 undefine 에러가 뜨는 현상이 생기는데

혹시 아시는분 계실가 해서 남겨 봅니다.

실행 부분 결과 코드값은 0000 정상 처리는 되었다고 나오는데

저렇게 에러가 뜨니 찾기가 쉽지 않네요

혹시 아시는분 계시면 답변 부탁드립니다.






    require(BASEPATH.'libraries/pp_cli_hub_lib.php');
        
        if ( $_SERVER['REQUEST_METHOD'] != "POST" )
        {
            echo("잘못된 경로로 접속하였습니다.");
            exit;
        }
        
        /* ============================================================================== */
        /* =   01. 지불 요청 정보 설정                                                  = */
        /* = -------------------------------------------------------------------------- = */
        $req_tx         = $this->input->post( "req_tx"         ); // 요청 종류
        $tran_cd        = $this->input->post( "tran_cd"        ); // 처리 종류
        /* = -------------------------------------------------------------------------- = */
        $cust_ip        = getenv( "REMOTE_ADDR"    ); // 요청 IP
        $ordr_idxx      = $this->input->post( "ordr_idxx"      ); // 쇼핑몰 주문번호
        $good_name      = $this->input->post( "good_name"      ); // 상품명
        $good_mny       = $this->input->post( "good_mny"       ); // 결제 총금액
        /* = -------------------------------------------------------------------------- = */
        $res_cd         = ""; // 응답코드
        $res_msg        = ""; // 응답메시지
        $tno            = $this->input->post( "tno"            ); // KCP 거래 고유 번호
        /* = -------------------------------------------------------------------------- = */
        $buyr_name      = $this->input->post( "buyr_name"      ); // 주문자명
        $buyr_tel1      = $this->input->post( "buyr_tel1"      ); // 주문자 전화번호
        $buyr_tel2      = $this->input->post( "buyr_tel2"      ); // 주문자 핸드폰 번호
        $buyr_mail      = $this->input->post( "buyr_mail"      ); // 주문자 E-mail 주소
        /* = -------------------------------------------------------------------------- = */
        $use_pay_method = $this->input->post( "use_pay_method" ); // 결제 방법
        $bSucc          = "";                         // 업체 DB 처리 성공 여부
        /* = -------------------------------------------------------------------------- = */
        $app_time       = "";                         // 승인시간 (모든 결제 수단 공통)
        $amount         = "";                         // KCP 실제 거래 금액
        /* = -------------------------------------------------------------------------- = */
        $card_cd        = "";                         // 신용카드 코드
        $card_name      = "";                         // 신용카드 명
        $app_no         = "";                         // 신용카드 승인번호
        $noinf          = "";                         // 신용카드 무이자 여부
        $quota          = "";                         // 신용카드 할부개월
        $partcanc_yn    = "";                         // 부분취소 가능유무
        $card_bin_type_01 = "";                       // 카드구분1
        $card_bin_type_02 = "";                       // 카드구분2
        /* = -------------------------------------------------------------------------- = */
        $bank_name      = "";                         // 은행명
        $bank_code      = "";                         // 은행코드
        /* = -------------------------------------------------------------------------- = */
        $bankname       = "";                         // 입금할 은행명
        $depositor      = "";                         // 입금할 계좌 예금주 성명
        $account        = "";                         // 입금할 계좌 번호
        $va_date        = "";                         // 가상계좌 입금마감시간
        /* = -------------------------------------------------------------------------- = */
        $pnt_issue      = "";                         // 결제 포인트사 코드
        $pnt_amount     = "";                         // 적립금액 or 사용금액
        $pnt_app_time   = "";                         // 승인시간
        $pnt_app_no     = "";                         // 승인번호
        $add_pnt        = "";                         // 발생 포인트
        $use_pnt        = "";                         // 사용가능 포인트
        $rsv_pnt        = "";                         // 적립 포인트
        /* = -------------------------------------------------------------------------- = */
        $commid         = "";                         // 통신사 코드
        $mobile_no      = "";                         // 휴대폰 번호
        $van_cd         = "";
        /* = -------------------------------------------------------------------------- = */
        $tk_van_code    = "";                         // 발급사 코드
        $tk_app_no      = "";                         // 상품권 승인 번호
        /* = -------------------------------------------------------------------------- = */
        $cash_yn        = $this->input->post( "cash_yn"        ); // 현금영수증 등록 여부
        $cash_authno    = "";                         // 현금 영수증 승인 번호
        $cash_tr_code   = $this->input->post( "cash_tr_code"   ); // 현금 영수증 발행 구분
        $cash_id_info   = $this->input->post( "cash_id_info"   ); // 현금 영수증 등록 번호
        
        $param_opt_1    = $this->input->post( "param_opt_1" );
        $param_opt_2    = $this->input->post( "param_opt_2" );
        $param_opt_3    = $this->input->post( "param_opt_3" );
        $trace_no = "";
        
        $c_PayPlus = new C_PP_CLI;
        
        $c_PayPlus->mf_clear();
        
        /* = -------------------------------------------------------------------------- = */
        /* =   03-1. 승인 요청                                                          = */
        /* = -------------------------------------------------------------------------- = */
        if ( $req_tx == "pay" )
        {
            /* 1004원은 실제로 업체에서 결제하셔야 될 원 금액을 넣어주셔야 합니다. 결제금액 유효성 검증 */
            /* $c_PayPlus->mf_set_ordr_data( "ordr_mony",  "1004" );                                    */
        
            $c_PayPlus->mf_set_encx_data( $this->input->post( "enc_data" ), $this->input->post( "enc_info" ) );
        }
        
        
        /* ============================================================================== */
        /* =   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_log_path ); // 응답 전문 처리
        
            $res_cd  = $c_PayPlus->m_res_cd;  // 결과 코드
            $res_msg = $c_PayPlus->m_res_msg; // 결과 메시지
            
        }
        else
        {
            $c_PayPlus->m_res_cd  = "9562";
            $c_PayPlus->m_res_msg = "연동 오류|tran_cd값이 설정되지 않았습니다.";
        }
        
        print_r("res_cd = ".$res_cd." res_msg=". $res_msg . "g_conf_home_dir=".g_conf_home_dir."param_opt_3==".$param_opt_3);
        /* ============================================================================== */
        /* =   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 실제 거래 금액
                $app_time  = $c_PayPlus->mf_get_res_data( "app_time"  ); // 승인시간
                $pnt_issue = $c_PayPlus->mf_get_res_data( "pnt_issue" ); // 결제 포인트사 코드
        
                /* = -------------------------------------------------------------------------- = */
                /* =   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_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" ); // 부분취소 가능유무
                }
                /* = -------------------------------------------------------------------------- = */
                /* =   05-7. 현금영수증 결과 처리                                               = */
                /* = -------------------------------------------------------------------------- = */
                //$cash_authno  = $c_PayPlus->mf_get_res_data( "cash_authno"  ); // 현금 영수증 승인 번호
        
            }
        }
        /* = -------------------------------------------------------------------------- = */
        /* =   05. 승인 결과 처리 END                                                   = */
        /* ============================================================================== */
        
        
        /* ============================================================================== */
        /* =   06. 승인 및 실패 결과 DB처리                                             = */
        /* = -------------------------------------------------------------------------- = */
        /* =       결과를 업체 자체적으로 DB처리 작업하시는 부분입니다.                 = */
        /* = -------------------------------------------------------------------------- = */
        
        if ( $req_tx == "pay" )
        {
            if( $res_cd == "0000" )
            {
                // 06-1-1. 신용카드
                if ( $use_pay_method == "100000000000" )
                {
                    //alert("신용카드 결제 완료");
                }
                // 06-1-2. 계좌이체
                if ( $use_pay_method == "010000000000" )
                {
                }
                // 06-1-3. 가상계좌
                if ( $use_pay_method == "001000000000" )
                {
                }
                // 06-1-4. 포인트
                if ( $use_pay_method == "000100000000" )
                {
                }
                // 06-1-5. 휴대폰
                if ( $use_pay_method == "000010000000" )
                {
                }
                // 06-1-6. 상품권
                if ( $use_pay_method == "000000001000" )
                {
                }
            }
        
            /* = -------------------------------------------------------------------------- = */
            /* =   06. 승인 및 실패 결과 DB처리                                             = */
            /* ============================================================================== */
            else if ( $res_cd != "0000" )
            {
                alert("승인 실패처리");
            }
        }
        
        
        /* ============================================================================== */
        /* =   07. 승인 결과 DB처리 실패시 : 자동취소                                   = */
        /* = -------------------------------------------------------------------------- = */
        /* =         승인 결과를 DB 작업 하는 과정에서 정상적으로 승인된 건에 대해      = */
        /* =         DB 작업을 실패하여 DB update 가 완료되지 않은 경우, 자동으로       = */
        /* =         승인 취소 요청을 하는 프로세스가 구성되어 있습니다.                = */
        /* =                                                                            = */
        /* =         DB 작업이 실패 한 경우, bSucc 라는 변수(String)의 값을 "false"     = */
        /* =         로 설정해 주시기 바랍니다. (DB 작업 성공의 경우에는 "false" 이외의 = */
        /* =         값을 설정하시면 됩니다.)                                           = */
        /* = -------------------------------------------------------------------------- = */
        
        $bSucc = "true"; // DB 작업 실패 또는 금액 불일치의 경우 "false" 로 세팅
        print_r("req_tx = ".$req_tx." req_cd = ". $res_cd . "use_pay_method=" . $use_pay_method . "\n");
        /* = -------------------------------------------------------------------------- = */
        /* =   07-1. DB 작업 실패일 경우 자동 승인 취소                                 = */
        /* = -------------------------------------------------------------------------- = */
        if ( $req_tx == "pay" )
        {
            if( $res_cd == "0000" )
            {
                if ( $bSucc == "false" )
                {
                    $c_PayPlus->mf_clear();
        
                    $tran_cd = "00200000";
        
                    $c_PayPlus->mf_set_modx_data( "tno",      $tno                         );  // KCP 원거래 거래번호
                    $c_PayPlus->mf_set_modx_data( "mod_type", "STSC"                       );  // 원거래 변경 요청 종류
                    $c_PayPlus->mf_set_modx_data( "mod_ip",   $cust_ip                     );  // 변경 요청자 IP
                    $c_PayPlus->mf_set_modx_data( "mod_desc", "결과 처리 오류 - 자동 취소" );  // 변경 사유
        
                    print_r("req_tx = ".$req_tx." req_cd = ". $res_cd . "use_pay_method=" . $use_pay_method . "\n");
                    
                    $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_log_path ); // 응답 전문 처리
        
                    $res_cd  = $c_PayPlus->m_res_cd;
                    $res_msg = $c_PayPlus->m_res_msg;
                }
            }
        } // End of [res_cd = "0000"]
        /* ============================================================================== */
        
        $data = array(
                'site_cd'             => g_conf_site_cd,
                'req_tx'             => $req_tx,
                'use_pay_method'     => $use_pay_method,
                'bSucc'                => $bSucc,
                'res_cd'            => $res_cd,
                'res_msg'             => $res_msg,
                'ordr_idxx'         => $ordr_idxx,
                'tno'                 => $tno,
                'good_mny'             => $good_mny,
                'good_name'         => $good_name,
                'buyr_name'         => $buyr_name,
                'buyr_tel1'            => $buyr_tel1,
                'buyr_tel2'         => $buyr_tel2,
                'buyr_mail'         => $buyr_mail,
                'app_time'             => $app_time,
                'card_cd'             => $card_cd,
                'card_name'         => $card_name,
                'app_no'             => $app_no,
                'noinf'             => $noinf,
                'quota'             => $quota,
                'partcanc_yn'         => $partcanc_yn,
                'card_bin_type_01'     => $card_bin_type_01,
                'card_bin_type_02'    => $card_bin_type_02,
                'bank_name'         => $bank_name,
                'bank_code'         => $bank_code,
                'bankname'             => $bankname,
                'depositor'         => $depositor,
                'account'             => $account,
                'va_date'             => $va_date,
                'pnt_issue'         => $pnt_issue,
                'pnt_app_time'         => $pnt_app_time,
                'pnt_app_no'         => $pnt_app_no,
                'pnt_amount'         => $pnt_amount,
                'add_pnt'             => $add_pnt,
                'use_pnt'             => $use_pnt,
                'rsv_pnt'             => $rsv_pnt,
                'commid'             => $commid,
                'mobile_no'         => $mobile_no,
                'van_cd'             => $van_cd,
                'amount'             => $amount,
                'tk_van_code'         => $tk_van_code,
                'tk_app_no'         => $tk_app_no,
                'cash_yn'             => $cash_yn,
                'cash_authno'         => $cash_authno,
                'cash_tr_code'         => $cash_tr_code,
                'cash_id_info'         => $cash_id_info,
                'param_opt_1'         => $param_opt_1,
                'param_opt_2'         => $param_opt_2,
                'param_opt_3'         => $param_opt_3
        );
        
        
        $this->load->view("_head");
        $this->load->view("article/pp_cli_hub",$data);
        $this->load->view("_footer");
 다음글 ci session이 브라우저 close할 때 자동으로... (1)
 이전글 부트스트랩 navbar 모바일 메뉴 에러 질문 (1)

댓글

료단 / 2015/07/08 10:55:18 / 추천 0
아 일단 샘플 그대로 연결한 내용인데
모바일 브라우저에선 정상적인데 
앱에 웹뷰안에 들어가면 거기서 그런 문제가 나오네요 ...
한대승(불의회상) / 2015/07/08 10:59:41 / 추천 0
g_conf_site_cd 가 상수가 아니라면 $g_conf_site_cd 로 하셔야 할 것 같은데요.