'digitalcheck',
'key' => $sid,
'result' => 'SESSION ERROR',
'data' => wp_unslash( $_POST ),
);
usces_save_order_acting_error( $log );
usces_log( 'digitalcheck construct : error1', 'acting_transaction.log' );
} else {
usces_log( 'digitalcheck construct : ' . $sid, 'acting_transaction.log' );
}
/* AnotherLane */
} elseif ( isset( $_REQUEST['SiteId'] ) && isset( $_REQUEST['rand'] ) ) {
$rand = wp_unslash( $_REQUEST['rand'] );
$datas = usces_get_order_acting_data( $rand );
$_GET['uscesid'] = $datas['sesid'];
if ( empty( $datas['sesid'] ) ) {
$log = array(
'acting' => 'anotherlane',
'key' => $rand,
'result' => 'SESSION ERROR',
'data' => wp_unslash( $_REQUEST ),
);
usces_save_order_acting_error( $log );
usces_log( 'anotherlane construct : error1', 'acting_transaction.log' );
} else {
usces_log( 'anotherlane construct : ' . $rand, 'acting_transaction.log' );
}
/* Veritrans */
} elseif ( isset( $_POST['orderId'] ) && isset( $_POST['merchantEncryptionKey'] ) ) {
$orderid = wp_unslash( $_POST['orderId'] );
$datas = usces_get_order_acting_data( $orderid );
$_GET['uscesid'] = $datas['sesid'];
if ( empty( $datas['sesid'] ) ) {
$log = array(
'acting' => 'veritrans',
'key' => $orderid,
'result' => 'SESSION ERROR',
'data' => wp_unslash( $_POST ),
);
usces_save_order_acting_error( $log );
usces_log( 'Veritrans construct : error1', 'acting_transaction.log' );
} else {
usces_log( 'Veritrans construct : ' . $orderid, 'acting_transaction.log' );
}
}
}
/**
* 決済結果通知の送信元IPが許可リストに含まれるか判定する。
*
* @param string $remote_addr Source IP address of the notification.
* @param array|string $allowed Allowed IP addresses / CIDR ranges.
* @return bool True when the source IP is allowed.
*/
function usces_acting_notice_ip_allowed( $remote_addr, $allowed ) {
if ( empty( $remote_addr ) || empty( $allowed ) ) {
return false;
}
$remote_long = ip2long( $remote_addr );
if ( false === $remote_long ) {
return false;
}
foreach ( (array) $allowed as $entry ) {
$entry = trim( (string) $entry );
if ( '' === $entry ) {
continue;
}
if ( false !== strpos( $entry, '/' ) ) {
list( $subnet, $bits ) = explode( '/', $entry, 2 );
$subnet_long = ip2long( $subnet );
$bits = (int) $bits;
if ( false === $subnet_long || $bits < 1 || 32 < $bits ) {
continue;
}
$mask = ( 0xFFFFFFFF << ( 32 - $bits ) ) & 0xFFFFFFFF;
if ( ( $remote_long & $mask ) === ( $subnet_long & $mask ) ) {
return true;
}
} elseif ( ip2long( $entry ) === $remote_long ) {
return true;
}
}
return false;
}
/**
* Settlement Result Notification Processing.
* usces_after_cart_instant
*/
function usces_action_acting_transaction() {
global $usces, $wpdb;
/* remise_card */
if ( isset( $_POST['X-TRANID'] ) && ! isset( $_POST['OPT'] ) ) {
$data = array();
foreach ( $_POST as $key => $value ) {
$data[ $key ] = mb_convert_encoding( $value, 'UTF-8', 'SJIS' );
}
/* 決済エラーの場合は、エラーログを残してdie */
if ( 0 != $data['X-ERRLEVEL'] ) {
$log = array(
'acting' => 'remise_card',
'key' => $data['S_TORIHIKI_NO'],
'result' => $data['X-ERRCODE'],
'data' => $data,
);
usces_save_order_acting_error( $log );
$status = ( isset( $_POST['CARIER_TYPE'] ) ) ? '900' : '800';
die( 'STATUS=' . $status . '' );
}
usces_log( 'remise acting_transaction : ' . print_r( $data, true ), 'acting_transaction.log' );
$rand = wp_unslash( $_POST['X-S_TORIHIKI_NO'] );
/* カード情報更新 */
if ( '0000000' === substr( $rand, 0, 7 ) ) { /* card up */
usces_log( 'remise card_update : ' . print_r( $data, true ), 'acting_transaction.log' );
if ( isset( $_POST['X-AC_S_KAIIN_NO'] ) ) {
if ( isset( $_POST['X-EXPIRE'] ) ) {
$expire = wp_unslash( $_POST['X-EXPIRE'] );
$limitofcard = substr( $expire, 0, 2 ) . '/' . substr( $expire, 2, 2 );
$usces->set_member_meta_value( 'limitofcard', $limitofcard, wp_unslash( $_POST['X-AC_S_KAIIN_NO'] ) );
}
if ( isset( $_POST['X-PARTOFCARD'] ) ) {
$usces->set_member_meta_value( 'partofcard', wp_unslash( $_POST['X-PARTOFCARD'] ), wp_unslash( $_POST['X-AC_S_KAIIN_NO'] ) );
}
} elseif ( isset( $_POST['X-PAYQUICKID'] ) ) {
$member_id = substr( $rand, 7 );
if ( $member_id ) {
$usces->set_member_meta_value( 'remise_pcid', wp_unslash( $_POST['X-PAYQUICKID'] ), (int) $member_id );
if ( isset( $_POST['X-EXPIRE'] ) ) {
$expire = wp_unslash( $_POST['X-EXPIRE'] );
$limitofcard = substr( $expire, 0, 2 ) . '/' . substr( $expire, 2, 2 );
$usces->set_member_meta_value( 'limitofcard', $limitofcard, (int) $member_id );
}
if ( isset( $_POST['X-PARTOFCARD'] ) ) {
$usces->set_member_meta_value( 'partofcard', wp_unslash( $_POST['X-PARTOFCARD'] ), (int) $member_id );
}
}
}
$status = ( isset( $_POST['CARIER_TYPE'] ) ) ? '900' : '800';
die( 'STATUS=' . $status . '' );
}
$cart = $usces->cart->get_cart();
/* カートが無い(セッションが無い)場合、エラーログを残し、ルミーズにはerrorを返却 */
if ( empty( $cart ) ) {
usces_log( 'remise card error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
$log = array(
'acting' => 'remise',
'key' => wp_unslash( $_POST['X-S_TORIHIKI_NO'] ),
'result' => 'SESSION TIME OUT',
'data' => wp_unslash( $_POST ),
);
usces_save_order_acting_error( $log );
die( 'SESSION TIME OUT' );
/* セッションが存在する場合は、STATUSを返却 */
} else {
if ( isset( $_POST['X-PAYQUICKID'] ) ) {
$usces->set_member_meta_value( 'remise_pcid', wp_unslash( $_POST['X-PAYQUICKID'] ) );
}
if ( isset( $_POST['X-AC_MEMBERID'] ) ) {
$usces->set_member_meta_value( 'remise_memid', wp_unslash( $_POST['X-AC_MEMBERID'] ) );
}
if ( isset( $_POST['X-EXPIRE'] ) ) {
$expire = wp_unslash( $_POST['X-EXPIRE'] );
$limitofcard = substr( $expire, 0, 2 ) . '/' . substr( $expire, 2, 2 );
$usces->set_member_meta_value( 'limitofcard', $limitofcard );
}
if ( isset( $_POST['X-PARTOFCARD'] ) ) {
$usces->set_member_meta_value( 'partofcard', wp_unslash( $_POST['X-PARTOFCARD'] ) );
}
usces_log( 'remise card transaction : ' . wp_unslash( $_POST['X-TRANID'] ), 'acting_transaction.log' );
$status = ( isset( $_POST['CARIER_TYPE'] ) ) ? '900' : '800';
die( 'STATUS=' . $status . '' );
}
/* remise_conv */
} elseif ( isset( $_POST['S_TORIHIKI_NO'] ) && isset( $_POST['REC_FLG'] ) ) {
$data = array();
foreach ( $_POST as $key => $value ) {
$data[ $key ] = mb_convert_encoding( $value, 'UTF-8', 'SJIS' );
}
REMISE_SETTLEMENT::get_instance()->acting_notice_ip_guard( $data );
$table_name = $wpdb->prefix . 'usces_order';
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$mquery = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'settlement_id', wp_unslash( $_POST['S_TORIHIKI_NO'] ) );
$order_id = $wpdb->get_var( $mquery );
if ( null == $order_id ) {
$log = array(
'acting' => 'remise_conv',
'key' => wp_unslash( $_POST['S_TORIHIKI_NO'] ),
'result' => 'ORDER DATA KEY ERROR',
'data' => wp_unslash( $_POST ),
);
usces_save_order_acting_error( $log );
usces_log( 'remise conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error1' );
}
$res = usces_change_order_receipt( $order_id, 'receipted' );
if ( false === $res ) {
$log = array(
'acting' => 'remise_conv',
'key' => wp_unslash( $_POST['S_TORIHIKI_NO'] ),
'result' => 'ORDER DATA UPDATE ERROR',
'data' => wp_unslash( $_POST ),
);
usces_save_order_acting_error( $log );
usces_log( 'remise conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error2' );
}
$datastr = serialize( $data );
$mquery = $wpdb->prepare( "UPDATE $table_meta_name SET meta_value = %s WHERE meta_key = %s AND order_id = %d", $datastr, 'settlement_id', $order_id );
$res = $wpdb->query( $mquery );
if ( false === $res ) {
$log = array(
'acting' => 'remise_conv',
'key' => wp_unslash( $_POST['S_TORIHIKI_NO'] ),
'result' => 'ORDER META DATA UPDATE ERROR',
'data' => wp_unslash( $_POST ),
);
usces_save_order_acting_error( $log );
usces_log( 'remise conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error3' );
}
usces_action_acting_getpoint( $order_id );
usces_log( 'remise conv transaction : ' . wp_unslash( $_POST['S_TORIHIKI_NO'] ), 'acting_transaction.log' );
die( 'STATUS=800' );
/* jpayment_card */
} elseif ( isset( $_REQUEST['acting'] ) && 'jpayment_card' == $_REQUEST['acting'] ) {
/* jpayment_conv */
} elseif ( isset( $_REQUEST['acting'] ) && 'jpayment_conv' == $_REQUEST['acting'] && isset( $_GET['ap'] ) ) {
switch ( $_GET['ap'] ) {
case 'CPL_PRE': /* コンビニペーパーレス決済識別コード */
break;
case 'CPL': /* 入金確定 */
JPAYMENT_SETTLEMENT::get_instance()->acting_notice_ip_guard();
$acting = wp_unslash( $_REQUEST['acting'] );
$data = array();
foreach ( $_GET as $key => $value ) {
$data[ $key ] = esc_sql( $value );
}
$cod = ( isset( $data['cod'] ) ) ? $data['cod'] : '';
$table_name = $wpdb->prefix . 'usces_order';
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'settlement_id', $cod );
$order_id = $wpdb->get_var( $query );
if ( null == $order_id ) {
$log = array(
'acting' => $acting,
'key' => $cod,
'result' => 'ORDER DATA KEY ERROR',
'data' => $data,
);
usces_save_order_acting_error( $log );
usces_log( 'ROBOT PAYMENT conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error1' );
}
$res = usces_change_order_receipt( $order_id, 'receipted' );
if ( false === $res ) {
$log = array(
'acting' => $acting,
'key' => $cod,
'result' => 'ORDER DATA UPDATE ERROR',
'data' => $data,
);
usces_save_order_acting_error( $log );
usces_log( 'ROBOT PAYMENT conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error2' );
}
$res = $usces->set_order_meta_value( 'acting_' . $acting, serialize( $data ), $order_id );
if ( false === $res ) {
$log = array(
'acting' => $acting,
'key' => $cod,
'result' => 'ORDER META DATA UPDATE ERROR',
'data' => $data,
);
usces_save_order_acting_error( $log );
usces_log( 'ROBOT PAYMENT conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error3' );
}
usces_action_acting_getpoint( $order_id );
usces_log( 'ROBOT PAYMENT conv transaction : ' . $data['gid'], 'acting_transaction.log' );
die( 'ROBOT PAYMENT' );
break;
case 'CVS_CAN': /* 入金取消 */
JPAYMENT_SETTLEMENT::get_instance()->acting_notice_ip_guard();
$acting = wp_unslash( $_REQUEST['acting'] );
$data = array();
foreach ( $_GET as $key => $value ) {
$data[ $key ] = esc_sql( $value );
}
$cod = ( isset( $data['cod'] ) ) ? $data['cod'] : '';
$table_name = $wpdb->prefix . 'usces_order';
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'settlement_id', $cod );
$order_id = $wpdb->get_var( $query );
if ( null == $order_id ) {
$log = array(
'acting' => $acting,
'key' => $cod,
'result' => 'ORDER DATA KEY ERROR',
'data' => $data,
);
usces_save_order_acting_error( $log );
usces_log( 'ROBOT PAYMENT conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error1' );
}
$res = usces_change_order_receipt( $order_id, 'noreceipt' );
if ( false === $res ) {
$log = array(
'acting' => $acting,
'key' => $cod,
'result' => 'ORDER DATA UPDATE ERROR',
'data' => $data,
);
usces_save_order_acting_error( $log );
usces_log( 'ROBOT PAYMENT conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error2' );
}
$res = $usces->set_order_meta_value( 'acting_' . $acting, serialize( $data ), $order_id );
if ( false === $res ) {
$log = array(
'acting' => $acting,
'key' => $cod,
'result' => 'ORDER META DATA UPDATE ERROR',
'data' => $data,
);
usces_save_order_acting_error( $log );
usces_log( 'ROBOT PAYMENT conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error3' );
}
usces_action_acting_getpoint( $order_id, false );
usces_log( 'ROBOT PAYMENT conv transaction : ' . $data['gid'], 'acting_transaction.log' );
die( 'ROBOT PAYMENT' );
break;
}
/* jpayment_bank */
} elseif ( isset( $_REQUEST['acting'] ) && 'jpayment_bank' == $_REQUEST['acting'] && isset( $_GET['ap'] ) ) {
switch ( $_GET['ap'] ) {
case 'BANK': /* 受付完了 */
break;
case 'BAN_SAL': /* 入金完了 */
JPAYMENT_SETTLEMENT::get_instance()->acting_notice_ip_guard();
if ( isset( $_GET['mf'] ) && '1' == wp_unslash( $_GET['mf'] ) ) { /* 入金マッチングの場合 */
$acting = wp_unslash( $_REQUEST['acting'] );
$data = array();
foreach ( $_GET as $key => $value ) {
$data[ $key ] = esc_sql( $value );
}
$cod = ( isset( $data['cod'] ) ) ? $data['cod'] : '';
$table_name = $wpdb->prefix . 'usces_order';
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'settlement_id', $cod );
$order_id = $wpdb->get_var( $query );
if ( null == $order_id ) {
$log = array(
'acting' => $acting,
'key' => $cod,
'result' => 'ORDER DATA KEY ERROR',
'data' => $data,
);
usces_save_order_acting_error( $log );
usces_log( 'ROBOT PAYMENT bank error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error1' );
}
$res = usces_change_order_receipt( $order_id, 'receipted' );
if ( false === $res ) {
$log = array(
'acting' => $acting,
'key' => $cod,
'result' => 'ORDER DATA UPDATE ERROR',
'data' => $data,
);
usces_save_order_acting_error( $log );
usces_log( 'ROBOT PAYMENT bank error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error2' );
}
$res = $usces->set_order_meta_value( 'acting_' . $acting, serialize( $data ), $order_id );
if ( false === $res ) {
$log = array(
'acting' => $acting,
'key' => $cod,
'result' => 'ORDER META DATA UPDATE ERROR',
'data' => $data,
);
usces_save_order_acting_error( $log );
usces_log( 'ROBOT PAYMENT bank error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error3' );
}
usces_action_acting_getpoint( $order_id );
}
usces_log( 'ROBOT PAYMENT bank transaction : ' . $data['gid'], 'acting_transaction.log' );
die( 'ROBOT PAYMENT' );
break;
}
/* PayPal ipn */
} elseif ( ! isset( $_GET['acting_return'] ) && ( isset( $_GET['acting'] ) && 'paypal_ipn' == wp_unslash( $_GET['acting'] ) ) ) {
if ( file_exists( $usces->options['settlement_path'] . 'paypal.php' ) ) {
$data = array();
foreach ( $_REQUEST as $key => $value ) {
$data[ $key ] = $value;
}
usces_log( 'paypal_ipn in ' . print_r( $data, true ), 'acting_transaction.log' );
require_once( $usces->options['settlement_path'] . 'paypal.php' );
$ipn_res = paypal_ipn_check( $usces_paypal_url );
if ( true === $ipn_res[0] ) {
$res = $usces->order_processing( $ipn_res );
if ( 'ordercompletion' == $res ) {
$usces->cart->crear_cart();
} else {
usces_log( 'paypal_ipn error : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'error1' );
}
do_action( 'usces_action_paypal_ipn', $res, $ipn_res );
}
usces_log( 'PayPal IPN transaction : ' . wp_unslash( $_REQUEST['txn_id'] ), 'acting_transaction.log' );
}
die( 'PayPal' );
/* telecom edy */
} elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && ( isset( $_REQUEST['acting'] ) && 'telecom_edy' == $_REQUEST['acting'] ) ) {
$data = array();
foreach ( $_REQUEST as $key => $value ) {
$data[ $key ] = $value;
}
usces_log( 'telecom edy : ' . print_r( $data, true ), 'acting_transaction.log' );
} elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && isset( $_REQUEST['edy'] ) ) {
$data = array();
foreach ( $_REQUEST as $key => $value ) {
$data[ $key ] = $value;
}
if ( 'yes' === wp_unslash( $_REQUEST['rel'] ) && isset( $_REQUEST['option'] ) ) {
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$mquery = $wpdb->prepare( "SELECT order_id, meta_value FROM $table_meta_name WHERE meta_key = %s", wp_unslash( $_REQUEST['option'] ) );
$mvalue = $wpdb->get_row( $mquery, ARRAY_A );
$value = unserialize( $mvalue['meta_value'] );
$_SESSION['usces_cart'] = $value['usces_cart'];
$_SESSION['usces_entry'] = $value['usces_entry'];
$_SESSION['usces_member'] = $value['usces_member'];
$res = $usces->order_processing();
if ( 'ordercompletion' == $res ) {
$query = $wpdb->prepare( "DELETE FROM $table_meta_name WHERE meta_key = %s", wp_unslash( $_REQUEST['option'] ) );
$res = $wpdb->query( $query );
usces_log( 'telecom edy - Payment confirmation : ' . print_r( $data, true ), 'acting_transaction.log' );
} else {
$log = array(
'acting' => 'telecom_edy',
'key' => wp_unslash( $_REQUEST['option'] ),
'result' => 'ORDER DATA REGISTERED ERROR',
'data' => wp_unslash( $_REQUEST ),
);
usces_save_order_acting_error( $log );
usces_log( 'telecom edy - Error 1 : ' . print_r( $data, true ), 'acting_transaction.log' );
}
} else {
$log = array(
'acting' => 'telecom_edy',
'key' => wp_unslash( $_REQUEST['option'] ),
'result' => wp_unslash( $_REQUEST['rel'] ),
'data' => wp_unslash( $_REQUEST ),
);
usces_save_order_acting_error( $log );
usces_log( 'telecom edy - Error 2 : ' . print_r( $data, true ), 'acting_transaction.log' );
}
die( 'SuccessOK' );
/* telecom credit */
} elseif ( isset( $_REQUEST['clientip'] ) && isset( $_REQUEST['sendid'] ) && isset( $_REQUEST['rel'] ) ) {
$data = array();
foreach ( $_REQUEST as $key => $value ) {
$data[ $key ] = $value;
}
if ( 'yes' === wp_unslash( $_REQUEST['rel'] ) && isset( $_REQUEST['option'] ) ) {
} else {
$log = array(
'acting' => 'telecom_card',
'key' => wp_unslash( $_REQUEST['option'] ),
'result' => wp_unslash( $_REQUEST['rel'] ),
'data' => wp_unslash( $_REQUEST ),
);
usces_save_order_acting_error( $log );
}
usces_log( 'telecom card : ' . print_r( $data, true ), 'acting_transaction.log' );
die( 'SuccessOK' );
/* digitalcheck card */
} elseif ( isset( $_REQUEST['SID'] ) && isset( $_REQUEST['FUKA'] ) && 'acting_digitalcheck_card' == substr( wp_unslash( $_REQUEST['FUKA'] ), 0, 24 ) ) {
if ( isset( $_GET['acting_return'] ) && isset( $_GET['acting'] ) && 'digitalcheck_card' === $_GET['acting'] ) {
return;
}
$data = array();
foreach ( $_REQUEST as $key => $value ) {
$data[ $key ] = $value;
}
$sid = ( isset( $data['SID'] ) ) ? $data['SID'] : '';
if ( isset( $data['SEQ'] ) ) {
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
$order_id = $wpdb->get_var( $query );
if ( ! $order_id ) {
$acting_opts = $usces->options['acting_settings']['digitalcheck'];
$ip_user_id = substr( $data['FUKA'], 24 );
if ( 'on' == $acting_opts['card_user_id'] && ! empty( $ip_user_id ) ) {
$usces->set_member_meta_value( 'digitalcheck_ip_user_id', $ip_user_id, $ip_user_id );
}
$res = $usces->order_processing();
if ( 'ordercompletion' == $res ) {
$order_id = $usces->cart->get_order_entry( 'ID' );
$usces->set_order_meta_value( 'acting_digitalcheck_card', serialize( $data ), $order_id );
$usces->set_order_meta_value( 'wc_trans_id', $sid, $order_id );
} else {
$log = array(
'acting' => 'digitalcheck_card',
'key' => $sid,
'result' => 'ORDER DATA REGISTERED ERROR',
'data' => wp_unslash( $_REQUEST ),
);
usces_save_order_acting_error( $log );
// usces_log( 'digitalcheck card : order processing error', 'acting_transaction.log' );
}
}
header( 'Content-Type: text/plain; charset=Shift_JIS' );
die( "0\r\n" );
} elseif ( isset( $data['purchase'] ) ) {
return;
} else {
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
$order_id = $wpdb->get_var( $query );
if ( $order_id ) {
header( 'Content-Type: text/plain; charset=Shift_JIS' );
die( "0\r\n" );
}
}
header( 'Content-Type: text/plain; charset=Shift_JIS' );
die( "0\r\n" );
/* digitalcheck conv */
} elseif ( isset( $_REQUEST['SID'] ) && isset( $_REQUEST['FUKA'] ) && 'acting_digitalcheck_conv' == substr( wp_unslash( $_REQUEST['FUKA'] ), 0, 24 ) ) {
if ( isset( $_GET['acting_return'] ) && isset( $_GET['acting'] ) && 'digitalcheck_conv' === $_GET['acting'] ) {
return;
}
$data = array();
foreach ( $_REQUEST as $key => $value ) {
$data[ $key ] = $value;
}
$sid = ( isset( $data['SID'] ) ) ? $data['SID'] : '';
if ( isset( $data['SEQ'] ) ) {
DIGITALCHECK_SETTLEMENT::get_instance()->acting_notice_ip_guard( $data );
$table_name = $wpdb->prefix . 'usces_order';
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
$order_id = $wpdb->get_var( $query );
if ( null == $order_id ) {
$log = array(
'acting' => 'digitalcheck_conv',
'key' => $sid,
'result' => 'ORDER DATA KEY ERROR',
'data' => wp_unslash( $_REQUEST ),
);
usces_save_order_acting_error( $log );
usces_log( 'digitalcheck conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
header( 'Content-Type: text/plain; charset=Shift_JIS' );
die( "9\r\n" );
}
if ( isset( $data['CVS'] ) ) { /* 入金 */
$res = usces_change_order_receipt( $order_id, 'receipted' );
if ( false === $res ) {
$log = array(
'acting' => 'digitalcheck_conv',
'key' => $sid,
'result' => 'ORDER DATA UPDATE ERROR',
'data' => wp_unslash( $_REQUEST ),
);
usces_save_order_acting_error( $log );
usces_log( 'digitalcheck conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
header( 'Content-Type: text/plain; charset=Shift_JIS' );
die( "9\r\n" );
}
usces_action_acting_getpoint( $order_id );
} else { /* 取消 */
$res = usces_change_order_receipt( $order_id, 'noreceipt' );
if ( false === $res ) {
$log = array(
'acting' => 'digitalcheck_conv',
'key' => $sid,
'result' => 'ORDER DATA UPDATE ERROR',
'data' => wp_unslash( $_REQUEST ),
);
usces_save_order_acting_error( $log );
usces_log( 'digitalcheck conv error3 : ' . print_r( $data, true ), 'acting_transaction.log' );
header( 'Content-Type: text/plain; charset=Shift_JIS' );
die( "9\r\n" );
}
usces_action_acting_getpoint( $order_id, false );
}
$usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
$dquery = $wpdb->prepare( "DELETE FROM $table_meta_name WHERE meta_key = %s", $sid );
$res = $wpdb->query( $dquery );
header( 'Content-Type: text/plain; charset=Shift_JIS' );
die( "0\r\n" );
} else {
if ( isset( $data['CVS'] ) && isset( $data['SHNO'] ) ) { /* 決済 */
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$query = $wpdb->prepare( "SELECT `order_id` FROM $table_meta_name WHERE `meta_key` = %s AND `meta_value` = %s", 'SID', $sid );
$order_id = $wpdb->get_var( $query );
if ( $order_id ) {
$usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
} else {
$res = $usces->order_processing();
if ( 'ordercompletion' == $res ) {
$usces->set_order_meta_value( 'acting_digitalcheck_conv', serialize( $data ), $order_id );
$usces->set_order_meta_value( 'wc_trans_id', $sid, $order_id );
} else {
$log = array(
'acting' => 'digitalcheck_conv',
'key' => $sid,
'result' => 'ORDER DATA REGISTERED ERROR',
'data' => wp_unslash( $_REQUEST ),
);
usces_save_order_acting_error( $log );
usces_log( 'digitalcheck conv : order processing error', 'acting_transaction.log' );
}
}
header( 'Content-Type: text/plain; charset=Shift_JIS' );
die( "0\r\n" );
} elseif ( isset( $data['purchase'] ) ) {
} else {
$permalink_structure = get_option( 'permalink_structure' );
$delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
header( 'location: ' . USCES_CART_URL . $delim . 'acting=digitalcheck_conv&acting_return=1&SID=' . $sid );
exit;
}
}
/* mizuho card */
} elseif ( ( isset( $_GET['p_ver'] ) && '0200' == wp_unslash( $_GET['p_ver'] ) ) && ( isset( $_GET['bkcode'] ) && 'bg01' == wp_unslash( $_GET['bkcode'] ) ) ) {
usces_log( 'mizuho card : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
$stran = ( array_key_exists( 'stran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['stran'] ) : '';
$mbtran = ( array_key_exists( 'mbtran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['mbtran'] ) : '';
$rsltcd = ( array_key_exists( 'rsltcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltcd'] ) : '';
$rsltdcd = ( array_key_exists( 'rsltdcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltdcd'] ) : '';
$permalink_structure = get_option( 'permalink_structure' );
$delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
if ( '108' == substr( $rsltcd, 0, 3 ) || '208' == substr( $rsltcd, 0, 3 ) || '308' == substr( $rsltcd, 0, 3 ) ) { /* キャンセル */
header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
} elseif ( '109' == substr( $rsltcd, 0, 3 ) || '209' == substr( $rsltcd, 0, 3 ) || '309' == substr( $rsltcd, 0, 3 ) ) { /* エラー */
$log = array(
'acting' => 'mizuho_card',
'key' => $stran,
'result' => $rsltcd,
'data' => wp_unslash( $_GET ),
);
usces_save_order_acting_error( $log );
usces_log( 'mizuho card : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=0&rsltdcd=' . $rsltdcd );
} else {
header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=1&stran=' . $stran . '&mbtran=' . $mbtran . '&rsltcd=' . $rsltcd );
}
die();
/* mizuho conv 提供対象外のため無効化。
} elseif ( ( isset( $_GET['p_ver'] ) && '0200' == wp_unslash( $_GET['p_ver'] ) ) && ( isset( $_GET['bkcode'] ) && ( 'cv01' == wp_unslash( $_GET['bkcode'] ) || 'cv02' == wp_unslash( $_GET['bkcode'] ) ) ) ) {
usces_log( 'mizuho conv : ' . print_r( $_GET, true ), 'acting_transaction.log' );
$stran = ( array_key_exists( 'stran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['stran'] ) : '';
$mbtran = ( array_key_exists( 'mbtran', $_REQUEST ) ) ? wp_unslash( $_REQUEST['mbtran'] ) : '';
$bktrans = ( array_key_exists( 'bktrans', $_REQUEST ) ) ? wp_unslash( $_REQUEST['bktrans'] ) : '';
$tranid = ( array_key_exists( 'tranid', $_REQUEST ) ) ? wp_unslash( $_REQUEST['tranid'] ) : '';
$tdate = ( array_key_exists( 'tdate', $_REQUEST ) ) ? wp_unslash( $_REQUEST['tdate'] ) : '';
$rsltcd = ( array_key_exists( 'rsltcd', $_REQUEST ) ) ? wp_unslash( $_REQUEST['rsltcd'] ) : '';
$permalink_structure = get_option( 'permalink_structure' );
$delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
if ( '' != $tdate ) { // 入金通知
$data = array();
foreach ( $_REQUEST as $key => $value ) {
$data[ $key ] = $value;
}
if ( '0000000000000' == $rsltcd ) {
$table_name = $wpdb->prefix . 'usces_order';
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'stran', $stran );
$order_id = $wpdb->get_var( $query );
if ( null == $order_id ) {
$log = array(
'acting' => 'mizuho_conv',
'key' => $stran,
'result' => 'ORDER DATA KEY ERROR',
'data' => wp_unslash( $_GET ),
);
usces_save_order_acting_error( $log );
usces_log( 'mizuho conv error1 : ' . print_r( $data, true ), 'acting_transaction.log' );
} else {
$res = usces_change_order_receipt( $order_id, 'receipted' );
if ( false === $res ) {
$log = array(
'acting' => 'mizuho_conv',
'key' => $stran,
'result' => 'ORDER DATA UPDATE ERROR',
'data' => wp_unslash( $_GET ),
);
usces_save_order_acting_error( $log );
usces_log( 'mizuho conv error2 : ' . print_r( $data, true ), 'acting_transaction.log' );
} else {
usces_action_acting_getpoint( $order_id );
$usces->set_order_meta_value( 'acting_mizuho_conv', serialize( $data ), $order_id );
$dquery = $wpdb->prepare( "DELETE FROM $table_meta_name WHERE meta_key = %s", $stran );
$res = $wpdb->query( $dquery );
}
}
} else {
usces_log( 'mizuho conv : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
}
} elseif ( '108' == substr( $rsltcd, 0, 3 ) || '208' == substr( $rsltcd, 0, 3 ) || '308' == substr( $rsltcd, 0, 3 ) ) { // キャンセル
header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
} elseif ( '109' == substr( $rsltcd, 0, 3 ) || '209' == substr( $rsltcd, 0, 3 ) || '309' == substr( $rsltcd, 0, 3 ) ) { // エラー
$log = array(
'acting' => 'mizuho_conv',
'key' => $stran,
'result' => $rsltcd,
'data' => wp_unslash( $_GET ),
);
usces_save_order_acting_error( $log );
usces_log( 'mizuho conv : ' . print_r( wp_unslash( $_GET ), true ), 'acting_transaction.log' );
header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_card&acting_return=0' );
} else {
header( 'location: ' . USCES_CART_URL . $delim . 'acting=mizuho_conv&acting_return=1&stran=' . $stran . '&mbtran=' . $mbtran . '&bktrans=' . wp_unslash( $_GET['bktrans'] ) . '&tranid=' . $tranid . '&rsltcd=' . $rsltcd );
}
die();
*/
/* AnotherLane credit */
} elseif ( isset( $_REQUEST['SiteId'] ) && isset( $_REQUEST['TransactionId'] ) && isset( $_REQUEST['Result'] ) ) {
$data = array();
foreach ( $_REQUEST as $key => $value ) {
$data[ $key ] = $value;
}
$acting_opts = $usces->options['acting_settings']['anotherlane'];
if ( ! isset( $_REQUEST['KickType'] ) && isset( $_REQUEST['TransactionId'] ) ) {
$permalink_structure = get_option( 'permalink_structure' );
$delim = ( ! $usces->use_ssl && $permalink_structure ) ? '?' : '&';
if ( $acting_opts['siteid'] == wp_unslash( $_REQUEST['SiteId'] ) && 'NG' == wp_unslash( $_REQUEST['Result'] ) ) {
$log = array(
'acting' => 'anotherlane_card',
'key' => wp_unslash( $_REQUEST['TransactionId'] ),
'result' => wp_unslash( $_REQUEST['Result'] ),
'data' => wp_unslash( $_REQUEST ),
);
usces_save_order_acting_error( $log );
header( 'location: ' . USCES_CART_URL . $delim . 'confirm=1' );
exit;
} elseif ( $acting_opts['siteid'] == wp_unslash( $_REQUEST['SiteId'] ) && 'OK' == wp_unslash( $_REQUEST['Result'] ) ) {
header( 'location: ' . USCES_CART_URL . $delim . 'acting=anotherlane_card&acting_return=1' );
exit;
}
} elseif ( isset( $_REQUEST['KickType'] ) && $acting_opts['siteid'] == wp_unslash( $_GET['SiteId'] ) && 'OK' == wp_unslash( $_GET['Result'] ) ) {
$table_meta_name = $wpdb->prefix . 'usces_order_meta';
$query = $wpdb->prepare( "SELECT order_id FROM $table_meta_name WHERE meta_key = %s AND meta_value = %s", 'TransactionId', $data['TransactionId'] );
$order_id = $wpdb->get_var( $query );
if ( ! $order_id ) {
$res = $usces->order_processing();
if ( 'ordercompletion' == $res ) {
$usces->set_order_meta_value( 'wc_trans_id', $data['TransactionId'], $order_id );
usces_log( 'AnotherLane [OK] transaction : ' . $data['TransactionId'], 'acting_transaction.log' );
} else {
$log = array(
'acting' => 'anotherlane_card',
'key' => $data['TransactionId'],
'result' => 'ORDER DATA REGISTERED ERROR',
'data' => wp_unslash( $_GET ),
);
usces_save_order_acting_error( $log );
usces_log( 'AnotherLane order processing error : ' . print_r( $data, true ), 'acting_transaction.log' );
}
}
} else {
$log = array(
'acting' => 'anotherlane_card',
'key' => $data['TransactionId'],
'result' => $data['Result'],
'data' => wp_unslash( $_GET ),
);
usces_save_order_acting_error( $log );
}
exit;
}
}