290 lines
10 KiB
PHP
290 lines
10 KiB
PHP
<?php
|
|
/* ====================================================================== */
|
|
/* = PAGE : 지불 연동 PHP 라이브러리 = */
|
|
/* = ------------------------------------------------------------------ = */
|
|
/* = Copyright (c) 2006 KCP Inc. All Rights Reserverd. = */
|
|
/* ====================================================================== */
|
|
|
|
/* ====================================================================== */
|
|
/* = 지불 연동 CLASS = */
|
|
/* ====================================================================== */
|
|
class C_PAYPLUS_CLI_T
|
|
{
|
|
var $m_payx_data;
|
|
var $m_ordr_data;
|
|
var $m_rcvr_data;
|
|
var $m_escw_data;
|
|
var $m_modx_data;
|
|
var $m_encx_data;
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
/* - 처리 결과 값 - */
|
|
/* -------------------------------------------------------------------- */
|
|
var $m_res_data;
|
|
var $m_res_cd;
|
|
var $m_res_msg;
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
/* - 생성자 - */
|
|
/* -------------------------------------------------------------------- */
|
|
function C_PAYPLUS_CLI()
|
|
{
|
|
$this->m_payx_data="payx_data=";
|
|
$this->m_payx_common="";
|
|
$this->m_payx_card="";
|
|
$this->m_ordr_data="";
|
|
$this->m_rcvr_data="";
|
|
$this->m_escw_data="";
|
|
$this->m_modx_data="";
|
|
$this->m_encx_data="";
|
|
}
|
|
|
|
function mf_init( $mode )
|
|
{
|
|
if ( $mode == "1" )
|
|
{
|
|
if ( !extension_loaded( 'pp_cli_dl_php' ) )
|
|
{
|
|
dl( "pp_cli_dl_php.so" );
|
|
}
|
|
}
|
|
}
|
|
|
|
function mf_clear()
|
|
{
|
|
$this->m_payx_data="payx_data=";
|
|
$this->m_payx_common="";
|
|
$this->m_payx_card="";
|
|
$this->m_ordr_data="";
|
|
$this->m_rcvr_data="";
|
|
$this->m_escw_data="";
|
|
$this->m_modx_data="";
|
|
$this->m_encx_data="";
|
|
}
|
|
|
|
function mf_gen_trace_no( $site_cd, $ip, $mode )
|
|
{
|
|
if ( $mode == "1" )
|
|
{
|
|
$trace_no = lfPP_CLI_DL__gen_trace_no( $site_cd, $ip );
|
|
}
|
|
else
|
|
{
|
|
$trace_no = "";
|
|
}
|
|
|
|
return $trace_no;
|
|
}
|
|
|
|
function mf_set_data_us( $name, $val )
|
|
{
|
|
$data = "";
|
|
|
|
if ( $name != "" && $val != "" )
|
|
{
|
|
$data = $name . '=' . $val . chr( 31 );
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
function mf_add_payx_data( $pay_type, $payx_data )
|
|
{
|
|
$this->m_payx_data .= ( $pay_type . '=' . $payx_data . chr( 30 ) );
|
|
}
|
|
|
|
function mf_set_ordr_data( $name, $val )
|
|
{
|
|
if ( $val != "" )
|
|
{
|
|
$this->m_ordr_data .= ( $name . '=' . $val . chr( 31 ) );
|
|
}
|
|
}
|
|
|
|
function mf_set_rcvr_data( $name, $val )
|
|
{
|
|
if ( $val != "" )
|
|
{
|
|
$this->m_rcvr_data .= ( $name . '=' . $val . chr( 31 ) );
|
|
}
|
|
}
|
|
|
|
function mf_set_escw_data( $name, $val )
|
|
{
|
|
if ( $val != "" )
|
|
{
|
|
$this->m_escw_data .= ( $name . '=' . $val . chr( 29 ) );
|
|
}
|
|
}
|
|
|
|
function mf_set_modx_data( $name, $val )
|
|
{
|
|
if ( $val != "" )
|
|
{
|
|
$this->m_modx_data .= ( $name . '=' . $val . chr( 31 ) );
|
|
}
|
|
}
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
/* - FUNC : 지불 처리 함수 - */
|
|
/* -------------------------------------------------------------------- */
|
|
function mf_do_tx( $trace_no, $home_dir, $site_cd,
|
|
$site_key, $tx_cd, $pub_key_str,
|
|
$pa_url, $pa_port, $user_agent,
|
|
$ordr_idxx, $cust_ip,
|
|
$log_level, $opt, $mode,
|
|
$key_dir, $log_dir)
|
|
{
|
|
$payx_data = $this->m_payx_data;
|
|
|
|
$ordr_data = $this->mf_get_data( "ordr_data", $this->m_ordr_data );
|
|
$rcvr_data = $this->mf_get_data( "rcvr_data", $this->m_rcvr_data );
|
|
$escw_data = $this->mf_get_data( "escw_data", $this->m_escw_data );
|
|
$modx_data = $this->mf_get_data( "mod_data", $this->m_modx_data );
|
|
|
|
if ( $mode == "1" )
|
|
{
|
|
$res_data = lfPP_CLI_DL__do_tx_2( $trace_no, $home_dir, $site_cd,
|
|
$site_key, $tx_cd, $pub_key_str,
|
|
$pa_url, $pa_port, $user_agent,
|
|
$ordr_idxx,
|
|
$payx_data, $ordr_data,
|
|
$rcvr_data, $escw_data,
|
|
$modx_data,
|
|
$this->m_encx_data, $this->m_encx_info,
|
|
$log_level, $opt );
|
|
|
|
}
|
|
else
|
|
{
|
|
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
|
|
{
|
|
$bin_exe = $home_dir.'/bin/pp_cli_exe ';
|
|
|
|
$res_data = $this->mf_exec($bin_exe . "\"".
|
|
"site_cd=" . $site_cd . "," .
|
|
"site_key=" . $site_key . "," .
|
|
"tx_cd=" . $tx_cd . "," .
|
|
"pa_url=" . $pa_url . "," .
|
|
"pa_port=" . $pa_port . "," .
|
|
"ordr_idxx=" . $ordr_idxx . "," .
|
|
"enc_data=" . $this->m_encx_data . "," .
|
|
"enc_info=" . $this->m_encx_info . "," .
|
|
"trace_no=" . $trace_no . "," .
|
|
"cust_ip=" . $cust_ip . "," .
|
|
"key_path=" . $key_dir . "," .
|
|
"log_path=" . $log_dir . "," .
|
|
"log_level=" . $log_level . "," .
|
|
"plan_data=" . $payx_data .
|
|
$ordr_data .
|
|
$rcvr_data .
|
|
$escw_data .
|
|
$modx_data .
|
|
"\"") ;
|
|
}
|
|
else
|
|
{
|
|
if(PHP_INT_MAX == 2147483647) // 32-bit
|
|
$bin_exe = $home_dir.'/bin/pp_cli';
|
|
else
|
|
$bin_exe = $home_dir.'/bin/pp_cli_x64';
|
|
|
|
$res_data = $this->mf_exec( $bin_exe,
|
|
"-h",
|
|
"home=" . $home_dir . "," .
|
|
"site_cd=" . $site_cd . "," .
|
|
"site_key=" . $site_key . "," .
|
|
"tx_cd=" . $tx_cd . "," .
|
|
"pa_url=" . $pa_url . "," .
|
|
"pa_port=" . $pa_port . "," .
|
|
"ordr_idxx=" . $ordr_idxx . "," .
|
|
"payx_data=" . $payx_data . "," .
|
|
"ordr_data=" . $ordr_data . "," .
|
|
"rcvr_data=" . $rcvr_data . "," .
|
|
"escw_data=" . $escw_data . "," .
|
|
"modx_data=" . $modx_data . "," .
|
|
"enc_data=" . $this->m_encx_data . "," .
|
|
"enc_info=" . $this->m_encx_info . "," .
|
|
"trace_no=" . $trace_no . "," .
|
|
"cust_ip=" . $cust_ip . "," .
|
|
"log_path=" . $log_dir . "," .
|
|
"log_level=" . $log_level . "," .
|
|
"opt=" . $opt . "" );
|
|
}
|
|
|
|
if ( $res_data == "" )
|
|
{
|
|
$res_data = "res_cd=9502" . chr( 31 ) . "res_msg=연동 모듈 호출 오류";
|
|
}
|
|
}
|
|
|
|
parse_str( str_replace( chr( 31 ), "&", $res_data ), $this->m_res_data );
|
|
|
|
$this->m_res_cd = $this->m_res_data[ "res_cd" ];
|
|
$this->m_res_msg = $this->m_res_data[ "res_msg" ];
|
|
}
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
/* - FUNC : 처리 결과 값을 리턴하는 함수 - */
|
|
/* -------------------------------------------------------------------- */
|
|
function mf_get_res_data( $name )
|
|
{
|
|
return $this->m_res_data[ $name ];
|
|
}
|
|
|
|
function mf_get_payx_data()
|
|
{
|
|
$my_data = "";
|
|
|
|
if ( $this->m_payx_common != "" || $this->m_payx_card != "" )
|
|
{
|
|
$my_data = "payx_data=";
|
|
}
|
|
|
|
if ( $this->m_payx_common != "" )
|
|
{
|
|
$my_data .= "common=" . $this->m_payx_common . chr( 30 );
|
|
}
|
|
|
|
if ( $this->m_payx_card != "" )
|
|
{
|
|
$my_data .= ( "card=" . $this->m_payx_card . chr( 30 ) );
|
|
}
|
|
|
|
return $my_data;
|
|
}
|
|
|
|
function mf_get_data( $data_name, $data )
|
|
{
|
|
$my_data = "";
|
|
|
|
if ( $data != "" )
|
|
{
|
|
$my_data = $data_name . "=" . $data;
|
|
}
|
|
else
|
|
{
|
|
$my_data = "";
|
|
}
|
|
|
|
return $my_data;
|
|
}
|
|
|
|
function mf_exec()
|
|
{
|
|
$arg = func_get_args();
|
|
|
|
if ( is_array( $arg[0] ) ) $arg = $arg[0];
|
|
|
|
$exec_cmd = array_shift( $arg );
|
|
|
|
while ( list(,$i) = each($arg) )
|
|
{
|
|
$exec_cmd .= " " . escapeshellarg( $i );
|
|
}
|
|
|
|
$rt = exec( $exec_cmd );
|
|
|
|
return $rt;
|
|
}
|
|
} |