/**
  * @brief pay
  */
 function procInipayDoIt()
 {
     $oEpayController =& getController('epay');
     $inipayhome = sprintf(_XE_PATH_ . "files/epay/%s", Context::get('module_srl'));
     $vars = Context::getRequestVars();
     $output = $oEpayController->beforePayment($vars);
     if (!$output->toBool()) {
         return $output;
     }
     $goodname = Context::get('goodname');
     $currency = Context::get('currency');
     require "libs/INILib.php";
     $inipay = new INIpay50();
     $inipay->SetField("inipayhome", $inipayhome);
     $inipay->SetField("type", "securepay");
     $inipay->SetField("pgid", "INIphp" . $pgid);
     // $pgid is global var which defined in INICls.php
     $inipay->SetField("subpgip", "203.238.3.10");
     $inipay->SetField("admin", $_SESSION['INI_ADMIN']);
     $inipay->SetField("debug", "true");
     $inipay->SetField("uid", $uid);
     $inipay->SetField("goodname", iconv("UTF-8", "EUC-KR", $goodname));
     $inipay->SetField("currency", $currency);
     $inipay->SetField("mid", $_SESSION['INI_MID']);
     $inipay->SetField("rn", $_SESSION['INI_RN']);
     $inipay->SetField("price", $_SESSION['INI_PRICE']);
     $inipay->SetField("enctype", $_SESSION['INI_ENCTYPE']);
     $inipay->SetField("buyername", iconv("UTF-8", "EUC-KR", Context::get('buyername')));
     $inipay->SetField("buyertel", Context::get('buyertel'));
     $inipay->SetField("buyeremail", Context::get('buyeremail'));
     $inipay->SetField("paymethod", Context::get('paymethod'));
     $inipay->SetField("encrypted", Context::get('encrypted'));
     $inipay->SetField("sessionkey", Context::get('sessionkey'));
     $inipay->SetField("url", 'www.nurigo.net');
     $inipay->SetField("cardcode", Context::get('cardcode'));
     $inipay->SetField("parentemail", Context::get('parentemail'));
     $inipay->SetField("recvname", Context::get('recvname'));
     $inipay->SetField("recvtel", Context::get('recvtel'));
     $inipay->SetField("recvaddr", Context::get('recvaddr'));
     $inipay->SetField("recvpostnum", Context::get('recvpostnum'));
     $inipay->SetField("recvmsg", Context::get('recvmsg'));
     $inipay->SetField("joincard", Context::get('joincard'));
     $inipay->SetField("joinexpire", Context::get('joinexpire'));
     $inipay->SetField("id_customer", Context::get('id_customer'));
     // 지불요청
     $inipay->startAction();
     $utf8ResultMsg = iconv('EUC-KR', 'UTF-8', $inipay->GetResult('ResultMsg'));
     $utf8VACTName = iconv('EUC-KR', 'UTF-8', $inipay->GetResult('VACT_Name'));
     $utf8VACTInputName = iconv('EUC-KR', 'UTF-8', $inipay->GetResult('VACT_InputName'));
     // error check
     if ($inipay->GetResult('ResultCode') != '00') {
         $payArgs = new Object(-1, $utf8ResultMsg);
         $payArgs->add('state', '3');
         // failure
     } else {
         $payArgs = new Object(0, $utf8ResultMsg);
         if ($this->getPaymethod(Context::get('paymethod')) == 'VA') {
             $payArgs->add('state', '1');
             // not completed
         } else {
             $payArgs->add('state', '2');
             // completed (success)
         }
     }
     $payArgs->add('transaction_srl', Context::get('transaction_srl'));
     $payArgs->add('payment_method', $this->getPaymethod(Context::get('paymethod')));
     $payArgs->add('payment_amount', $_SESSION['INI_PRICE']);
     $payArgs->add('result_code', $inipay->GetResult('ResultCode'));
     $payArgs->add('result_message', $utf8ResultMsg);
     $payArgs->add('vact_num', $inipay->GetResult('VACT_Num'));
     // 계좌번호
     $payArgs->add('vact_bankname', $this->getBankName($inipay->GetResult('VACT_BankCode')));
     //은행코드
     $payArgs->add('vact_bankcode', $inipay->GetResult('VACT_BankCode'));
     //은행코드
     $payArgs->add('vact_name', $utf8VACTName);
     // 예금주
     $payArgs->add('vact_inputname', $utf8VACTInputName);
     // 송금자
     $payArgs->add('vact_regnum', $inipay->GetResult('VACT_RegNum'));
     //송금자 주번
     $payArgs->add('vact_date', $inipay->GetResult('VACT_Date'));
     // 송금일자
     $payArgs->add('vact_time', $inipay->GetResult('VACT_Time'));
     // 송금시간
     $payArgs->add('pg_tid', $inipay->GetResult('TID'));
     // afterPayment will call an after trigger and returns return_url in $output
     $output = $oEpayController->afterPayment($payArgs);
     if (!$output->toBool()) {
         return $output;
     }
     $return_url = $output->get('return_url');
     if ($return_url) {
         $this->setRedirectUrl($return_url);
     }
 }
 function ajax_inicis_vbank_order_cancelled()
 {
     global $inicis_payment;
     $post_id = $_POST['post_id'];
     $after_refund_order_status = $this->settings['order_status_after_refund'];
     $received_tid = get_post_meta($post_id, 'inicis_vbank_noti_received_tid', true);
     $vbank_refund_bankcode = get_post_meta($post_id, 'vbank_refund_bankcode', true);
     $vbank_refund_vaccnum = get_post_meta($post_id, 'vbank_refund_vaccnum', true);
     $vbank_refund_vaccname = get_post_meta($post_id, 'vbank_refund_vaccname', true);
     $vbank_refund_reason = get_post_meta($post_id, 'vbank_refund_reason', true);
     if (isset($_POST['inicis_vbank_refund_request']) || wp_verify_nonce($_POST['inicis_vbank_refund_request'], 'inicis_vbank_refund_request')) {
         if (!file_exists($inicis_payment->plugin_path() . "/lib/inipay50/INILib.php")) {
             die('<span style="color:red;font-weight:bold;">' . __('에러 : INILib.php 파일이 없습니다. 사이트 관리자에게 문의하여 주십시오.', 'inicis_payment') . '</span>');
             wc_add_notice(__('에러 : INILib.php 파일이 없습니다. 사이트 관리자에게 문의하여 주십시오.', 'inicis_payment'), 'error');
         }
         require_once $inicis_payment->plugin_path() . "/lib/inipay50/INILib.php";
         $inipay = new INIpay50();
         $inipay->SetField("inipayhome", $this->settings['libfolder']);
         // 이니페이 홈디렉터리(상점수정 필요)
         $inipay->SetField("type", "refund");
         // 고정 (절대 수정 불가)
         $inipay->SetField("debug", "true");
         // 로그모드("true"로 설정하면 상세로그가 생성됨.)
         $inipay->SetField("mid", $this->settings['merchant_id']);
         // 상점아이디
         $inipay->SetField("admin", "1111");
         //비대칭 사용키 키패스워드
         //$inipay->SetField("pgn", $pgn);	//pgn 파라미터 값의 의미를 알수가 없음
         $inipay->SetField("tid", $received_tid);
         // 환불할 거래의 거래아이디
         $inipay->SetField("cancelmsg", mb_convert_encoding($vbank_refund_reason, "EUC-KR", "UTF-8"));
         // 환불사유
         $inipay->SetField("racctnum", $vbank_refund_vaccnum);
         $inipay->SetField("rbankcode", $vbank_refund_bankcode);
         $inipay->SetField("racctname", mb_convert_encoding($vbank_refund_vaccname, "EUC-KR", "UTF-8"));
         $inipay->startAction();
         $order = new WC_Order($post_id);
         if ($inipay->getResult('ResultCode') == '00') {
             //성공
             $order->update_status($after_refund_order_status);
             $order->add_order_note(sprintf(__('관리자의 요청으로 주문건의 가상계좌 환불처리가 완료되었습니다. 결과코드 : %s, 처리메시지 : %s, 거래번호 : %s, 취소날짜 : %s, 취소시간 : %s, 현금영수증 환불승인번호 : %s', 'inicis_payment'), $inipay->getResult('ResultCode'), mb_convert_encoding($inipay->GetResult('ResultMsg'), "UTF-8", "EUC-KR"), $received_tid, $inipay->getResult('CancelDate'), $inipay->getResult('CancelTime'), $inipay->getResult('CSHR_CancelNum')));
             update_post_meta($post_id, 'inicis_paymethod_vbank_refunded', 'yes');
             wp_send_json_success(__('관리자의 요청으로 주문건의 가상계좌 환불처리가 완료되었습니다.', 'inicis_payment'));
         } else {
             //실패
             $order = new WC_Order($post_id);
             $order->add_order_note(sprintf(__('관리자의 요청으로 주문건의 가상계좌 환불처리가 실패하였습니다. 결과코드 : %s, 처리메시지 : %s, 거래번호 : %s, 취소날짜 : %s, 취소시간 : %s, 현금영수증 환불승인번호 : %s', 'inicis_payment'), $inipay->getResult('ResultCode'), mb_convert_encoding($inipay->GetResult('ResultMsg'), "UTF-8", "EUC-KR"), $received_tid, $inipay->getResult('CancelDate'), $inipay->getResult('CancelTime'), $inipay->getResult('CSHR_CancelNum')));
             wp_send_json_error(__('관리자의 요청으로 주문건의 가상계좌 환불처리가 실패하였습니다. 환불계좌 정보를 다시 한번 확인 하신 후 환불하기를 진행해주세요.', 'inicis_payment'));
         }
     } else {
         //nonce 인증 실패시
         $order = new WC_Order($post_id);
         $order->add_order_note(sprintf(__('가상계좌 환불처리 요청이 실패하였습니다. 허용되지 않은 취소 신청입니다. 아이피 : %s', 'inicis_payment'), getenv("REMOTE_ADDR")));
         wp_send_json_error(__('가상계좌 환불처리 요청이 실패하였습니다. 허용되지 않은 취소 신청입니다.', 'inicis_payment'));
     }
 }
Example #3
0
 function procEscrowDenyConfirm()
 {
     $inipayhome = sprintf(_XE_PATH_ . "files/epay/%s", $this->plugin_info->plugin_srl);
     $vars = Context::getRequestVars();
     debugPrint('procEscrowDenyConfirm');
     debugPrint($vars);
     extract(get_object_vars($vars));
     /**************************
      * 1. 라이브러리 인클루드 *
      **************************/
     require "libs/INILib.php";
     /***************************************
      * 2. INIpay50 클래스의 인스턴스 생성 *
      ***************************************/
     $iniescrow = new INIpay50();
     /*********************
      * 3. 지불 정보 설정 *
      *********************/
     $iniescrow->SetField("inipayhome", $inipayhome);
     $iniescrow->SetField("tid", Context::get('tid'));
     $iniescrow->SetField("mid", $this->plugin_info->inicis_id);
     $iniescrow->SetField("admin", $this->plugin_info->inicis_pass);
     $iniescrow->SetField("type", "escrow");
     $iniescrow->SetField("escrowtype", "dcnf");
     // 고정 (절대 수정 불가)
     $iniescrow->SetField("dcnf_name", $dcnf_name);
     $iniescrow->SetField("debug", "true");
     /*********************
      * 3. 거절확인 요청 *
      *********************/
     $iniescrow->startAction();
     /**********************
      * 4. 거절확인  결과 *
      **********************/
     debugPrint($iniescrow->m_Data);
     $tid = $iniescrow->GetResult("tid");
     // 거래번호
     $resultCode = $iniescrow->GetResult("ResultCode");
     // 결과코드 ("00"이면 지불 성공)
     $resultMsg = $iniescrow->GetResult("ResultMsg");
     // 결과내용 (지불결과에 대한 설명)
     $resultDate = $iniescrow->GetResult("DCNF_Date");
     // 처리 날짜
     $resultTime = $iniescrow->GetResult("DCNF_Time");
     // 처리 시각
     Context::set('tid', $tid);
     Context::set('resultCode', $resultCode);
     Context::set('resultMsg', $resultMsg);
     Context::set('resultDate', $resultDate);
     Context::set('resultTime', $resultTime);
     $oTemplate =& TemplateHandler::getInstance();
     $tpl_path = _XE_PATH_ . "modules/epay/plugins/iniescrow/tpl";
     $tpl_file = 'escrow_denyconfirm_result.html';
     $tpl = $oTemplate->compile($tpl_path, $tpl_file);
     $output = new Object();
     if (!$resultCode != '00') {
         $output->setError(-1);
     }
     $output->add('order_srl', Context::get('order_srl'));
     $output->add('denyconfirm_code', $resultCode);
     $output->add('denyconfirm_message', iconv('EUC-KR', 'UTF-8', $resultMsg));
     $output->add('denyconfirm_date', $resultDate . $resultTime);
     $output->setMessage($tpl);
     return $output;
 }
 function successful_request_cancelled($posted)
 {
     global $woocommerce, $inicis_payment;
     require_once $inicis_payment->plugin_path() . "/lib/inipay50/INILib.php";
     $inipay = new INIpay50();
     //$inipay->SetField("inipayhome", $_REQUEST['home']);
     $inipay->SetField("inipayhome", $this->settings['libfolder']);
     $inipay->SetField("type", "cancel");
     $inipay->SetField("debug", "true");
     $inipay->SetField("mid", $_REQUEST['mid']);
     $inipay->SetField("admin", "1111");
     $inipay->SetField("tid", $_REQUEST['tid']);
     $inipay->SetField("cancelmsg", $_REQUEST['msg']);
     if ($code != "") {
         $inipay->SetField("cancelcode", $_REQUEST['code']);
     }
     $inipay->startAction();
     if ($inipay->getResult('ResultCode') == "00") {
         echo "success";
         return;
         //exit();
     } else {
         echo $inipay->getResult('ResultMsg');
         return;
         //exit();
     }
 }
Example #5
0
        // 에스크로결제 테스트
        $useescrow = ':useescrow';
    } else {
        // 일반결제 테스트
        $useescrow = '';
    }
}
/**************************
 * 1. 라이브러리 인클루드 *
 **************************/
require G5_SHOP_PATH . '/inicis/libs/INILib.php';
/***************************************
 * 2. INIpay50 클래스의 인스턴스 생성  *
 ***************************************/
$inipay = new INIpay50();
$inipay->SetField("inipayhome", G5_SHOP_PATH . '/inicis');
// 이니페이 홈디렉터리(상점수정 필요)
$inipay->SetField("debug", "false");
// 로그모드("true"로 설정하면 상세로그가 생성됨.)
$inipay_nointerest = 'no';
//무이자여부(no:일반, yes:무이자)
$inipay_quotabase = '선택:일시불:2개월:3개월:4개월:5개월:6개월:7개월:8개월:9개월:10개월:11개월:12개월';
// 할부기간
$BANK_CODE = array('03' => '기업은행', '04' => '국민은행', '05' => '외환은행', '07' => '수협중앙회', '11' => '농협중앙회', '20' => '우리은행', '23' => 'SC 제일은행', '31' => '대구은행', '32' => '부산은행', '34' => '광주은행', '37' => '전북은행', '39' => '경남은행', '53' => '한국씨티은행', '71' => '우체국', '81' => '하나은행', '88' => '신한은행', 'D1' => '동양종합금융증권', 'D2' => '현대증권', 'D3' => '미래에셋증권', 'D4' => '한국투자증권', 'D5' => '우리투자증권', 'D6' => '하이투자증권', 'D7' => 'HMC 투자증권', 'D8' => 'SK 증권', 'D9' => '대신증권', 'DA' => '하나대투증권', 'DB' => '굿모닝신한증권', 'DC' => '동부증권', 'DD' => '유진투자증권', 'DE' => '메리츠증권', 'DF' => '신영증권');
$CARD_CODE = array('01' => '외환', '03' => '롯데', '04' => '현대', '06' => '국민', '11' => 'BC', '12' => '삼성', '14' => '신한', '15' => '한미', '16' => 'NH', '17' => '하나 SK', '21' => '해외비자', '22' => '해외마스터', '23' => 'JCB', '24' => '해외아멕스', '25' => '해외다이너스');
$PAY_METHOD = array('VCard' => '신용카드', 'Card' => '신용카드', 'DirectBank' => '계좌이체', 'HPP' => '휴대폰', 'VBank' => '가상계좌');
// 플러그인 호출 URL
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
    $ini_js_url = 'https://plugin.inicis.com/pay61_secunissl_cross.js';
} else {
    $ini_js_url = 'http://plugin.inicis.com/pay61_secuni_cross.js';
 * 
 * http://www.inicis.com
 * Copyright (C) 2007 Inicis, Co. All rights reserved.
 */
/* * ************************
 * 1. 라이브러리 인클루드 *
 * ************************ */
require "../libs/INILib.php";
/* * *************************************
 * 2. INIpay41 클래스의 인스턴스 생성 *
 * ************************************* */
$inipay = new INIpay50();
/* * *******************
 * 3. 취소 정보 설정 *
 * ******************* */
$inipay->SetField("inipayhome", "/home/ts/www/INIpay50");
// 이니페이 홈디렉터리(상점수정 필요)
$inipay->SetField("type", "cancel");
// 고정 (절대 수정 불가)
$inipay->SetField("debug", "true");
// 로그모드("true"로 설정하면 상세로그가 생성됨.)
$inipay->SetField("mid", $mid);
// 상점아이디
/* * ************************************************************************************************
 * admin 은 키패스워드 변수명입니다. 수정하시면 안됩니다. 1111의 부분만 수정해서 사용하시기 바랍니다.
 * 키패스워드는 상점관리자 페이지(https://iniweb.inicis.com)의 비밀번호가 아닙니다. 주의해 주시기 바랍니다.
 * 키패스워드는 숫자 4자리로만 구성됩니다. 이 값은 키파일 발급시 결정됩니다.
 * 키패스워드 값을 확인하시려면 상점측에 발급된 키파일 안의 readme.txt 파일을 참조해 주십시오.
 * ************************************************************************************************ */
$inipay->SetField("admin", "1111");
$inipay->SetField("tid", $tid);
Example #7
0
 /**
  * @brief epay.getPaymentForm 에서 호출됨
  */
 function dispInipayForm()
 {
     $oEpayController =& getController('epay');
     $inipayhome = sprintf(_XE_PATH_ . "files/epay/%s", $this->module_info->module_srl);
     // get products info using cartnos
     $reviewOutput = $oEpayController->reviewOrder();
     if (!$reviewOutput->toBool()) {
         return $reviewOutput;
     }
     Context::set('transaction_srl', $reviewOutput->transaction_srl);
     Context::set('order_srl', $reviewOutput->order_srl);
     Context::set('review_form', $reviewOutput->review_form);
     Context::set('item_name', $reviewOutput->item_name);
     Context::set('price', $reviewOutput->price);
     Context::set('purchaser_name', $reviewOutput->purchaser_name);
     Context::set('purchaser_email', $reviewOutput->purchaser_email);
     Context::set('purchaser_telnum', $reviewOutput->purchaser_telnum);
     // set acceptmethod options
     if ($this->module_info->method_mobilephone == 'Y') {
         $HPP = '1';
     }
     if ($this->module_info->method_mobilephone == 'M') {
         $HPP = '2';
     }
     $acceptmethod = sprintf("SKIN(%s):HPP(%s):Card(0):OCB:receipt:cardpoint", $this->module_info->paywin_skin, $HPP);
     if ($this->module_info->va_receipt == 'Y') {
         $acceptmethod .= ':va_receipt';
     }
     Context::set('acceptmethod', $acceptmethod);
     require "libs/INILib.php";
     $inipay = new INIpay50();
     $inipay->SetField("inipayhome", $inipayhome);
     $inipay->SetField("type", "chkfake");
     $inipay->SetField("debug", "true");
     $inipay->SetField("enctype", "asym");
     $inipay->SetField("admin", $this->module_info->inicis_pass);
     $inipay->SetField("checkopt", "false");
     $inipay->SetField("mid", $this->module_info->inicis_id);
     $inipay->SetField("price", $reviewOutput->price);
     $inipay->SetField("nointerest", "no");
     $inipay->SetField("quotabase", iconv('UTF-8', 'EUC-KR', '선택:일시불:2개월:3개월:6개월'));
     /* 암호화 대상/값을 암호화 */
     $inipay->startAction();
     /* 암호화 결과 */
     if ($inipay->GetResult("ResultCode") != "00") {
         $resultMsg = iconv("EUC-KR", "UTF-8", $inipay->GetResult("ResultMsg"));
         return new Object(-1, $resultMsg);
     }
     /* 세션정보 저장 */
     $_SESSION['INI_MID'] = $this->module_info->inicis_id;
     //상점ID
     $_SESSION['INI_ADMIN'] = $this->module_info->inicis_pass;
     // 키패스워드(키발급시 생성, 상점관리자 패스워드와 상관없음)
     $_SESSION['INI_PRICE'] = $reviewOutput->price;
     //가격
     $_SESSION['INI_RN'] = $inipay->GetResult("rn");
     //고정 (절대 수정 불가)
     $_SESSION['INI_ENCTYPE'] = $inipay->GetResult("enctype");
     //고정 (절대 수정 불가)
     Context::set('encfield', $inipay->GetResult('encfield'));
     Context::set('certid', $inipay->GetResult('certid'));
     Context::set('inicis_id', $this->module_info->inicis_id);
     // payment method 변환 <-- CC, IB, VA, MP 를 결제모듈에서 정의된 것으로 대체할 수 있으면 좋겠음.
     $payment_method = Context::get('payment_method');
     switch ($payment_method) {
         case "CC":
             $payment_method = "Card";
             break;
         case "IB":
             $payment_method = "DirectBank";
             break;
         case "VA":
             $payment_method = "VBank";
             break;
         case "MP":
             $payment_method = "HPP";
             break;
         default:
             $payment_method = "Card";
     }
     Context::set('payment_method', $payment_method);
     $this->setTemplateFile('formdata');
 }
    function pay_callback()
    {
        global $woocommerce;
        global $woocommerce_ver21_less;
        @ob_clean();
        header('Content-type: text/html; charset=euc-kr');
        foreach ($_POST as $key => $row) {
            $_POST[$key] = iconv("UTF-8", "EUC-KR", $row);
        }
        $order_id = $_POST["oid"];
        $order = new WC_Order($order_id);
        /* INIsecurepay.php
         *
         * 이니페이 플러그인을 통해 요청된 지불을 처리한다.
         * 지불 요청을 처리한다.
         * 코드에 대한 자세한 설명은 매뉴얼을 참조하십시오.
         * <주의> 구매자의 세션을 반드시 체크하도록하여 부정거래를 방지하여 주십시요.
         *
         * http://www.inicis.com
         * Copyright (C) 2006 Inicis Co., Ltd. All rights reserved.
         */
        /****************************
         * 0. 세션 시작             *
         ****************************/
        // session_start();                                //주의:파일 최상단에 위치시켜주세요!!
        $inicis_session_vars = (array) get_user_meta(get_current_user_id(), wskl_get_option_name('inicis_session_vars'), TRUE);
        /**************************
         * 1. 라이브러리 인클루드 *
         **************************/
        require_once dirname(__FILE__) . '/homeinicis/libs/INILib.php';
        /***************************************
         * 2. INIpay50 클래스의 인스턴스 생성 *
         ***************************************/
        $inipay = new INIpay50();
        /*********************
         * 3. 지불 정보 설정 *
         *********************/
        //$inipay->SetField("inipayhome", "/home/ts/www/INIpay50"); // 이니페이 홈디렉터리(상점수정 필요)
        // 이니페이 홈디렉터리(상점수정 필요)
        $inipay->SetField("inipayhome", dirname(__FILE__) . '/homeinicis');
        // 고정 (절대 수정 불가)
        $inipay->SetField("type", "securepay");
        // 고정 (절대 수정 불가)
        $inipay->SetField("pgid", "INIphp" . $pgid);
        // 고정 (절대 수정 불가)
        $inipay->SetField("subpgip", "203.238.3.10");
        // 키패스워드(상점아이디에 따라 변경)
        //$inipay->SetField( "admin", $_SESSION['INI_ADMIN'] );
        // 키패스워드(상점아이디에 따라 변경)
        $inipay->SetField("admin", $inicis_session_vars['INI_ADMIN']);
        // 로그모드("true"로 설정하면 상세로그가 생성됨.)
        $inipay->SetField("debug", "true");
        // INIpay User ID (절대 수정 불가)
        $inipay->SetField("uid", $uid);
        // 상품명
        $inipay->SetField("goodname", $goodname);
        // 화폐단위
        $inipay->SetField("currency", $currency);
        //$inipay->SetField( "mid", $_SESSION['INI_MID'] );        // 상점아이디
        // 상점아이디
        $inipay->SetField("mid", $inicis_session_vars['INI_MID']);
        // 웹페이지 위변조용 RN값
        //$inipay->SetField( "rn", $_SESSION['INI_RN'] );
        // 웹페이지 위변조용 RN값
        $inipay->SetField("rn", $inicis_session_vars['INI_RN']);
        //$inipay->SetField( "price", $_SESSION['INI_PRICE'] );    // 가격
        // 가격
        $inipay->SetField("price", $inicis_session_vars['INI_PRICE']);
        //$inipay->SetField( "enctype",
        //                  $_SESSION['INI_ENCTYPE'] );// 고정 (절대 수정 불가)
        // 고정 (절대 수정 불가)
        $inipay->SetField("enctype", $inicis_session_vars['INI_ENCTYPE']);
        /*----------------------------------------------------------------------------------------
        		  price 등의 중요데이터는
        		  브라우저상의 위변조여부를 반드시 확인하셔야 합니다.
        
        		  결제 요청페이지에서 요청된 금액과
        		  실제 결제가 이루어질 금액을 반드시 비교하여 처리하십시오.
        
        		  설치 메뉴얼 2장의 결제 처리페이지 작성부분의 보안경고 부분을 확인하시기 바랍니다.
        		  적용참조문서: 이니시스홈페이지->가맹점기술지원자료실->기타자료실 의
        						 '결제 처리 페이지 상에 결제 금액 변조 유무에 대한 체크' 문서를 참조하시기 바랍니다.
        		  예제)
        		  원 상품 가격 변수를 OriginalPrice 하고  원 가격 정보를 리턴하는 함수를 Return_OrgPrice()라 가정하면
        		  다음 같이 적용하여 원가격과 웹브라우저에서 Post되어 넘어온 가격을 비교 한다.
        
        		   $OriginalPrice = Return_OrgPrice();
        		   $PostPrice = $_SESSION['INI_PRICE'];
        		   if ( $OriginalPrice != $PostPrice )
        		   {
        			   //결제 진행을 중단하고  금액 변경 가능성에 대한 메시지 출력 처리
        			   //처리 종료
        		   }
        
        		 ----------------------------------------------------------------------------------------*/
        $inipay->SetField("buyername", $buyername);
        // 구매자 명
        // 구매자 연락처(휴대폰 번호 또는 유선전화번호)
        $inipay->SetField("buyertel", $buyertel);
        // 구매자 이메일 주소
        $inipay->SetField("buyeremail", $buyeremail);
        // 지불방법 (절대 수정 불가)
        $inipay->SetField("paymethod", $paymethod);
        // 암호문
        $inipay->SetField("encrypted", $encrypted);
        // 암호문
        $inipay->SetField("sessionkey", $sessionkey);
        // 실제 서비스되는 상점 SITE URL로 변경할것
        // $inipay->SetField( "url", $_SESSION['inicis_url'] );
        $inipay->SetField("url", $inicis_session_vars['inicis_url']);
        $inipay->SetField("cardcode", $cardcode);
        // 카드코드 리턴
        // 보호자 이메일 주소(핸드폰 , 전화결제시에 14세 미만의 고객이 결제하면  부모 이메일로 결제 내용통보 의무, 다른결제 수단 사용시에 삭제 가능)
        $inipay->SetField("parentemail", $parentemail);
        /*-----------------------------------------------------------------*
         * 수취인 정보 *                                                   *
         *-----------------------------------------------------------------*
         * 실물배송을 하는 상점의 경우에 사용되는 필드들이며               *
         * 아래의 값들은 INIsecurepay.html 페이지에서 포스트 되도록        *
         * 필드를 만들어 주도록 하십시요.                                  *
         * 컨텐츠 제공업체의 경우 삭제하셔도 무방합니다.                   *
         *-----------------------------------------------------------------*/
        $inipay->SetField("recvname", $recvname);
        // 수취인 명
        $inipay->SetField("recvtel", $recvtel);
        // 수취인 연락처
        $inipay->SetField("recvaddr", $recvaddr);
        // 수취인 주소
        $inipay->SetField("recvpostnum", $recvpostnum);
        // 수취인 우편번호
        $inipay->SetField("recvmsg", $recvmsg);
        // 전달 메세지
        $inipay->SetField("joincard", $joincard);
        // 제휴카드코드
        $inipay->SetField("joinexpire", $joinexpire);
        // 제휴카드유효기간
        $inipay->SetField("id_customer", $id_customer);
        //user_id
        $inipay->SetField("log", "false");
        // 로깅은 생략합니다.
        /****************
         * 4. 지불 요청 *
         ****************/
        $inipay->startAction();
        /****************************************************************************************************************
         * 5. 결제  결과
         *
         *  1 모든 결제 수단에 공통되는 결제 결과 데이터
         *  거래번호 : $inipay->GetResult('TID')
         *  결과코드 : $inipay->GetResult('ResultCode') ("00"이면 지불 성공)
         *  결과내용 : $inipay->GetResult('ResultMsg') (지불결과에 대한 설명)
         *  지불방법 : $inipay->GetResult('PayMethod') (매뉴얼 참조)
         *  상점주문번호 : $inipay->GetResult('MOID')
         *  결제완료금액 : $inipay->GetResult('TotPrice')
         *
         * 결제 되는 금액 =>원상품가격과  결제결과금액과 비교하여 금액이 동일하지 않다면
         * 결제 금액의 위변조가 의심됨으로 정상적인 처리가 되지않도록 처리 바랍니다. (해당 거래 취소 처리)
         *
         *
         *  2. 신용카드,ISP,핸드폰, 전화 결제, 은행계좌이체, OK CASH BAG Point 결제 결과 데이터
         *      (무통장입금 , 문화 상품권 포함)
         *  이니시스 승인날짜 : $inipay->GetResult('ApplDate') (YYYYMMDD)
         *  이니시스 승인시각 : $inipay->GetResult('ApplTime') (HHMMSS)
         *
         *  3. 신용카드 결제 결과 데이터
         *
         *  신용카드 승인번호 : $inipay->GetResult('ApplNum')
         *  할부기간 : $inipay->GetResult('CARD_Quota')
         *  무이자할부 여부 : $inipay->GetResult('CARD_Interest') ("1"이면 무이자할부)
         *  신용카드사 코드 : $inipay->GetResult('CARD_Code') (매뉴얼 참조)
         *  카드발급사 코드 : $inipay->GetResult('CARD_BankCode') (매뉴얼 참조)
         *  본인인증 수행여부 : $inipay->GetResult('CARD_AuthType') ("00"이면 수행)
         *      각종 이벤트 적용 여부 : $inipay->GetResult('EventCode')
         *
         *      ** 달러결제 시 통화코드와  환률 정보 **
         *  해당 통화코드 : $inipay->GetResult('OrgCurrency')
         *  환율 : $inipay->GetResult('ExchangeRate')
         *
         *      아래는 "신용카드 및 OK CASH BAG 복합결제" 또는"신용카드 지불시에 OK CASH BAG적립"시에 추가되는 데이터
         *  OK Cashbag 적립 승인번호 : $inipay->GetResult('OCB_SaveApplNum')
         *  OK Cashbag 사용 승인번호 : $inipay->GetResult('OCB_PayApplNum')
         *  OK Cashbag 승인일시 : $inipay->GetResult('OCB_ApplDate') (YYYYMMDDHHMMSS)
         *  OCB 카드번호 : $inipay->GetResult('OCB_Num')
         *  OK Cashbag 복합결재시 신용카드 지불금액 : $inipay->GetResult('CARD_ApplPrice')
         *  OK Cashbag 복합결재시 포인트 지불금액 : $inipay->GetResult('OCB_PayPrice')
         *
         * 4. 실시간 계좌이체 결제 결과 데이터
         *
         *  은행코드 : $inipay->GetResult('ACCT_BankCode')
         *  현금영수증 발행결과코드 : $inipay->GetResult('CSHR_ResultCode')
         *  현금영수증 발행구분코드 : $inipay->GetResult('CSHR_Type')
         *                            *
         * 5. OK CASH BAG 결제수단을 이용시에만  결제 결과 데이터
         *  OK Cashbag 적립 승인번호 : $inipay->GetResult('OCB_SaveApplNum')
         *  OK Cashbag 사용 승인번호 : $inipay->GetResult('OCB_PayApplNum')
         *  OK Cashbag 승인일시 : $inipay->GetResult('OCB_ApplDate') (YYYYMMDDHHMMSS)
         *  OCB 카드번호 : $inipay->GetResult('OCB_Num')
         *
         * 6. 무통장 입금 결제 결과 데이터                                      *
         *  가상계좌 채번에 사용된 주민번호 : $inipay->GetResult('VACT_RegNum')                        *
         *  가상계좌 번호 : $inipay->GetResult('VACT_Num')                                          *
         *  입금할 은행 코드 : $inipay->GetResult('VACT_BankCode')                                    *
         *  입금예정일 : $inipay->GetResult('VACT_Date') (YYYYMMDD)                                *
         *  송금자 명 : $inipay->GetResult('VACT_InputName')                                            *
         *  예금주 명 : $inipay->GetResult('VACT_Name')                                            *
         *                            *
         * 7. 핸드폰, 전화 결제 결과 데이터( "실패 내역 자세히 보기"에서 필요 , 상점에서는 필요없는 정보임)             *
         *  전화결제 사업자 코드 : $inipay->GetResult('HPP_GWCode')                                  *
         *                            *
         * 8. 핸드폰 결제 결과 데이터                                        *
         *  휴대폰 번호 : $inipay->GetResult('HPP_Num') (핸드폰 결제에 사용된 휴대폰번호)                *
         *                            *
         * 9. 전화 결제 결과 데이터                                        *
         *  전화번호 : $inipay->GetResult('ARSB_Num') (전화결제에  사용된 전화번호)                  *
         *                            *
         * 10. 문화 상품권 결제 결과 데이터                                      *
         *  컬쳐 랜드 ID : $inipay->GetResult('CULT_UserID')                                      *
         *                            *
         * 11. K-merce 상품권 결제 결과 데이터 (K-merce ID, 틴캐시 아이디 공통사용)                                     *
         *      K-merce ID : $inipay->GetResult('CULT_UserID')                                                                       *
         *                                                                                                              *
         * 12. 모든 결제 수단에 대해 결제 실패시에만 결제 결과 데이터              *
         *  에러코드 : $inipay->GetResult('ResultErrorCode')                                      *
         *                            *
         * 13.현금영수증 발급 결과코드 (은행계좌이체시에만 리턴)              *
         *    $inipay->GetResult('CSHR_ResultCode')                                                                                     *
         *                                                                                                              *
         * 14.틴캐시 잔액 데이터                                              *
         *    $inipay->GetResult('TEEN_Remains')                                                                            *
         *  틴캐시 ID : $inipay->GetResult('CULT_UserID')                          *
         * 15.게임문화 상품권              *
         *  사용 카드 갯수 : $inipay->GetResult('GAMG_Cnt')                                  *
         *                            *
         ****************************************************************************************************************/
        /*******************************************************************
         * 7. DB연동 실패 시 강제취소                                      *
         *                                                                 *
         * 지불 결과를 DB 등에 저장하거나 기타 작업을 수행하다가 실패하는  *
         * 경우, 아래의 코드를 참조하여 이미 지불된 거래를 취소하는 코드를 *
         * 작성합니다.                                                     *
         *******************************************************************/
        /*
        $cancelFlag = "false";
        
        // $cancelFlag를 "ture"로 변경하는 condition 판단은 개별적으로
        // 수행하여 주십시오.
        
        if($cancelFlag == "true")
        {
        	$TID = $inipay->GetResult("TID");
        	$inipay->SetField("type", "cancel"); // 고정
        	$inipay->SetField("tid", $TID); // 고정
        	$inipay->SetField("cancelmsg", "DB FAIL"); // 취소사유
        	$inipay->startAction();
        	if($inipay->GetResult('ResultCode') == "00")
        	{
          $inipay->MakeTXErrMsg(MERCHANT_DB_ERR,"Merchant DB FAIL");
        	}
        }
        */
        //print_r($inipay->GetResult('ResultCode'));
        if ($woocommerce_ver21_less) {
            //			$return_url = add_query_arg( 'key', $order->order_key,
            //			                             add_query_arg( 'order', $order_id,
            //			                                            get_permalink( woocommerce_get_page_id( 'thanks' ) ) ) );
            $return_url = add_query_arg(array('key' => $order->order_key, 'order' => $order_id), get_permalink(woocommerce_get_page_id('thanks')));
        } else {
            $return_url = $this->get_return_url($order);
        }
        if ($inipay->GetResult('ResultCode') == "00") {
            $order->add_order_note(sprintf(__('결제가 성공적으로 처리됨.<br/>결제방법: %s<br/>이니시스 TID: %s. 발생시각: %s.', 'wskl'), $this->method, '111', date('Y-m-d H:i:s')));
            // Complete payment, reduce stock levels & remove cart
            $order->payment_complete();
            $order->reduce_order_stock();
            $woocommerce->cart->empty_cart();
        } else {
            // 결제실패에 따른 상점처리부분
            $res_msg = iconv('euc-kr', 'utf-8', $inipay->GetResult('ResultMsg'));
            $order->update_status('failed', sprintf(__('결제처리 안됨.<br/>-에러메시지 : %s<br/>-발생시각: %s.', 'wskl'), $res_msg, date('Y-m-d H-i-s')));
            //$cart_url = $woocommerce->cart->get_cart_url();
            // wp_redirect($cart_url);
        }
        // inicis_session_vars 제거
        delete_user_meta(get_current_user_id(), wskl_get_option_name('inicis_session_vars'));
        ?>

		<body onload="pay_info.submit();">
		<form name="pay_info" method="post" action="<?php 
        echo $return_url;
        ?>
">
			<input type="hidden" name="order_id" value="<?php 
        echo $order_id;
        ?>
">
			<input type="hidden" name="TID" value="<?php 
        echo $inipay->GetResult('TID');
        ?>
">
			<input type="hidden" name="ResultCode" value="<?php 
        echo $inipay->GetResult('ResultCode');
        ?>
">
			<input type="hidden" name="ResultMsg" value="<?php 
        echo $inipay->GetResult('ResultMsg');
        ?>
">
			<input type="hidden" name="PayMethod" value="<?php 
        echo $inipay->GetResult('PayMethod');
        ?>
">
			<input type="hidden" name="MOID" value="<?php 
        echo $inipay->GetResult('MOID');
        ?>
">
			<input type="hidden" name="TotPrice" value="<?php 
        echo $inipay->GetResult('TotPrice');
        ?>
">
			<input type="hidden" name="MID" value="<?php 
        echo $inipay->GetResult('MID');
        ?>
">

			<!-- 아래는 프로그램에서 값이$inipay에서 값이 넘어오지 않으므로 무시해도 됨-->
			<input type="hidden" name="ResultErrorCode" value="<?php 
        echo $inipay->GetResult('ResultErrorCode');
        ?>
">
			<input type="hidden" name="GoodName" value="<?php 
        echo $inipay->GetResult('GoodName');
        ?>
">
			<input type="hidden" name="BuyerName" value="<?php 
        echo $inipay->GetResult('BuyerName');
        ?>
">
			<input type="hidden" name="BuyerTel" value="<?php 
        echo $inipay->GetResult('BuyerTel');
        ?>
">
			<input type="hidden" name="BuyerEmail" value="<?php 
        echo $inipay->GetResult('BuyerEmail');
        ?>
">
			<input type="hidden" name="HPP_GWCode" value="<?php 
        echo $inipay->GetResult('HPP_GWCode');
        ?>
">

		</form>
		</body>
		<?php 
        ///wp_redirect( $return_url);
        exit;
    }
 function inicis_escrow_request_denyconfirm($posted)
 {
     global $inicis_payment;
     if (empty($_POST['dcnf_name']) && empty($_POST['tid']) && empty($_POST['mid'])) {
         return false;
     }
     require $inicis_payment->plugin_path() . "/lib/inipay50/INILib.php";
     $iniescrow = new INIpay50();
     $iniescrow->SetField("inipayhome", $this->settings['libfolder']);
     // 이니페이 홈디렉터리(상점수정 필요)
     $iniescrow->SetField("tid", $_POST['tid']);
     // 거래아이디
     $iniescrow->SetField("mid", $_POST['mid']);
     // 상점아이디
     $iniescrow->SetField("admin", "1111");
     // 키패스워드(상점아이디에 따라 변경)
     $iniescrow->SetField("type", "escrow");
     // 고정 (절대 수정 불가)
     $iniescrow->SetField("escrowtype", "dcnf");
     // 고정 (절대 수정 불가)
     $iniescrow->SetField("dcnf_name", $_POST['dcnf_name']);
     $iniescrow->SetField("debug", "true");
     // 로그모드("true"로 설정하면 상세한 로그가 생성됨)
     $iniescrow->startAction();
     $tid = $iniescrow->GetResult("tid");
     // 거래번호
     $resultCode = $iniescrow->GetResult("ResultCode");
     // 결과코드 ("00"이면 지불 성공)
     $resultMsg = $iniescrow->GetResult("ResultMsg");
     // 결과내용 (지불결과에 대한 설명)
     $resultDate = $iniescrow->GetResult("DCNF_Date");
     // 처리 날짜
     $resultTime = $iniescrow->GetResult("DCNF_Time");
     // 처리 시각
     $postid = $_POST['postid'];
     $orderinfo = new WC_Order($_POST['postid']);
     if ($resultCode == '00') {
         $tmp_settings = get_option('woocommerce_' . $this->id . '_settings', TRUE);
         $refunded_status = $tmp_settings['order_status_after_refund'];
         $orderinfo->update_status($refunded_status);
         //취소처리완료 상태로 변경
         update_post_meta($_POST['post_id'], '`_inicis_escrow_order_cancelled`', TRUE);
         $orderinfo->add_order_note(sprintf(__('에스크로 구매거절을 %s님께서 <font color=blue><strong>확인</strong></font>하였습니다. 에스크로 환불처리 완료하였습니다. 거래번호 : %s, 결과코드 : %s, 처리날짜 : %s, 처리시각 : %s', 'inicis_payment'), $_POST['dcnf_name'], $_POST['tid'], $resultCode, $resultDate, $resultTime));
     } else {
         $orderinfo->add_order_note(sprintf(__('에스크로 구매거절을 %s님께서 <font color=blue><strong>확인실패</strong></font>하였습니다. 에스크로 환불처리를 실패하였습니다. 에러메시지를 확인하세요! 거래번호 : %s, 결과코드 : %s, 에러메시지 : %s, 처리날짜 : %s, 처리시각 : %s', 'inicis_payment'), $_POST['dcnf_name'], $_POST['tid'], $resultCode, mb_convert_encoding($resultMsg, "UTF-8", "EUC-KR"), $resultDate, $resultTime));
         die;
     }
 }