acting_name = 'WelcartPay';
$this->acting_formal_name = 'WelcartPay based on e-SCOTT';
$this->acting_card = 'welcart_card';
$this->acting_conv = 'welcart_conv';
$this->acting_atodene = 'welcart_atodene';
$this->acting_applepay = 'welcart_applepay';
$this->acting_unionpay = 'welcart_unionpay';
$this->acting_flg_card = 'acting_welcart_card';
$this->acting_flg_conv = 'acting_welcart_conv';
$this->acting_flg_atodene = 'acting_welcart_atodene';
$this->acting_flg_applepay = 'acting_welcart_applepay';
$this->acting_flg_unionpay = 'acting_welcart_unionpay';
$this->pay_method = array(
'acting_welcart_card',
'acting_welcart_conv',
'acting_welcart_applepay',
'acting_welcart_unionpay',
);
$this->merchantfree3 = 'wc2collne';
$this->quick_key_pre = 'wcpay';
parent::__construct( 'welcart' );
if ( $this->is_activate_card() || $this->is_activate_conv() || $this->is_activate_applepay() || $this->is_activate_unionpay() ) {
if ( is_admin() ) {
add_action( 'usces_action_admin_ajax', array( $this, 'admin_ajax' ) );
add_filter( 'usces_filter_orderlist_detail_value', array( $this, 'orderlist_settlement_status' ), 10, 4 );
add_action( 'usces_action_order_edit_form_status_block_middle', array( $this, 'settlement_status' ), 10, 3 );
add_action( 'usces_action_order_edit_form_settle_info', array( $this, 'settlement_information' ), 10, 2 );
add_action( 'usces_action_endof_order_edit_form', array( $this, 'settlement_dialog' ), 10, 2 );
}
}
if ( $this->is_validity_acting( 'card' ) ) {
add_filter( 'usces_fiter_the_payment_method_explanation', array( $this, 'set_payment_method_explanation' ), 10, 3 );
add_filter( 'usces_filter_available_payment_method', array( $this, 'set_available_payment_method' ) );
add_filter( 'usces_filter_delivery_secure_form_howpay', array( $this, 'delivery_secure_form_howpay' ) );
add_filter( 'usces_filter_template_redirect', array( $this, 'member_update_settlement' ), 1 );
add_action( 'usces_action_member_submenu_list', array( $this, 'e_update_settlement' ) );
add_filter( 'usces_filter_member_submenu_list', array( $this, 'update_settlement' ), 10, 2 );
add_filter( 'usces_filter_save_order_acting_data', array( $this, 'save_order_acting_data' ) );
/* WCEX DL Seller */
if ( defined( 'WCEX_DLSELLER' ) ) {
if ( defined( 'WCEX_DLSELLER_VERSION' ) && version_compare( WCEX_DLSELLER_VERSION, '2.2-beta', '<=' ) ) {
add_filter( 'usces_filter_the_continue_payment_method', array( $this, 'continuation_payment_method' ) );
}
add_filter( 'dlseller_filter_first_charging', array( $this, 'first_charging_date' ), 9, 5 );
add_filter( 'dlseller_filter_the_payment_method_restriction', array( $this, 'payment_method_restriction' ), 10, 2 );
add_filter( 'dlseller_filter_continue_member_list_limitofcard', array( $this, 'continue_member_list_limitofcard' ), 10, 4 );
add_filter( 'dlseller_filter_continue_member_list_condition', array( $this, 'continue_member_list_condition' ), 10, 4 );
add_action( 'dlseller_action_continue_member_list_page', array( $this, 'continue_member_list_page' ) );
add_filter( 'dlseller_filter_card_update_mail', array( $this, 'continue_member_card_update_mail' ), 10, 3 );
add_action( 'dlseller_action_do_continuation_charging', array( $this, 'auto_continuation_charging' ), 10, 4 );
add_action( 'dlseller_action_do_continuation', array( $this, 'do_auto_continuation' ), 10, 2 );
add_filter( 'dlseller_filter_reminder_mail_body', array( $this, 'reminder_mail_body' ), 10, 3 );
add_filter( 'dlseller_filter_contract_renewal_mail_body', array( $this, 'contract_renewal_mail_body' ), 10, 3 );
}
/* WCEX Auto Delivery */
if ( defined( 'WCEX_AUTO_DELIVERY' ) ) {
add_filter( 'wcad_filter_shippinglist_acting', array( $this, 'set_shippinglist_acting' ) );
add_filter( 'wcad_filter_available_regular_payment_method', array( $this, 'available_regular_payment_method' ) );
add_filter( 'wcad_filter_the_payment_method_restriction', array( $this, 'payment_method_restriction' ), 10, 2 );
add_action( 'wcad_action_reg_auto_orderdata', array( $this, 'register_auto_orderdata' ) );
}
}
if ( $this->is_activate_atodene() ) {
if ( is_admin() ) {
add_action( 'usces_after_cart_instant', array( $this, 'atodene_upload' ), 9 );
add_action( 'usces_action_order_list_page', array( $this, 'output_atodene_csv' ) );
add_action( 'usces_action_order_list_searchbox_bottom', array( $this, 'action_atodene_button' ) );
add_action( 'usces_action_order_list_footer', array( $this, 'order_list_footer' ) );
add_filter( 'usces_filter_order_list_page_js', array( $this, 'order_list_page_js' ) );
add_filter( 'usces_order_list_action_status', array( $this, 'order_list_action_status' ) );
add_filter( 'usces_order_list_action_message', array( $this, 'order_list_action_message' ) );
add_filter( 'usces_filter_deli_comps', array( $this, 'delivery_company_name' ) );
$acting_opts = $this->get_acting_settings();
if ( isset( $acting_opts['atodene_byitem'] ) && 'on' === $acting_opts['atodene_byitem'] ) {
add_filter( 'usces_item_master_second_section', array( $this, 'edit_item_atodene_byitem' ), 10, 2 );
add_action( 'usces_action_save_product', array( $this, 'save_item_atodene_byitem' ), 10, 2 );
}
}
}
if ( $this->is_validity_acting( 'atodene' ) ) {
add_filter( 'usces_filter_nonacting_settlements', array( $this, 'nonacting_settlements' ) );
/* WCEX Auto Delivery */
if ( defined( 'WCEX_AUTO_DELIVERY' ) ) {
add_filter( 'wcad_filter_the_payment_method_restriction', array( $this, 'payment_method_restriction_atodene' ), 11, 2 );
}
}
if ( $this->is_validity_acting( 'unionpay' ) ) {
add_filter( 'usces_filter_save_order_acting_data', array( $this, 'save_order_acting_data' ) );
}
$this->initialize_data();
}
/**
* Return an instance of this class.
*/
public static function get_instance() {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Initialize.
*/
public function initialize_data() {
$options = get_option( 'usces', array() );
$options['acting_settings']['welcart']['merchant_id'] = ( isset( $options['acting_settings']['welcart']['merchant_id'] ) ) ? $options['acting_settings']['welcart']['merchant_id'] : '';
$options['acting_settings']['welcart']['merchant_pass'] = ( isset( $options['acting_settings']['welcart']['merchant_pass'] ) ) ? $options['acting_settings']['welcart']['merchant_pass'] : '';
$options['acting_settings']['welcart']['tenant_id'] = ( isset( $options['acting_settings']['welcart']['tenant_id'] ) ) ? $options['acting_settings']['welcart']['tenant_id'] : '0001';
$options['acting_settings']['welcart']['auth_key'] = ( isset( $options['acting_settings']['welcart']['auth_key'] ) ) ? $options['acting_settings']['welcart']['auth_key'] : '';
$options['acting_settings']['welcart']['ope'] = ( isset( $options['acting_settings']['welcart']['ope'] ) ) ? $options['acting_settings']['welcart']['ope'] : 'test';
$options['acting_settings']['welcart']['card_activate'] = ( isset( $options['acting_settings']['welcart']['card_activate'] ) ) ? $options['acting_settings']['welcart']['card_activate'] : 'off';
$options['acting_settings']['welcart']['card_key_aes'] = ( isset( $options['acting_settings']['welcart']['card_key_aes'] ) ) ? $options['acting_settings']['welcart']['card_key_aes'] : '';
$options['acting_settings']['welcart']['card_key_iv'] = ( isset( $options['acting_settings']['welcart']['card_key_iv'] ) ) ? $options['acting_settings']['welcart']['card_key_iv'] : '';
$options['acting_settings']['welcart']['foreign_activate'] = ( isset( $options['acting_settings']['welcart']['foreign_activate'] ) ) ? $options['acting_settings']['welcart']['foreign_activate'] : 'off';
$options['acting_settings']['welcart']['seccd'] = ( isset( $options['acting_settings']['welcart']['seccd'] ) ) ? $options['acting_settings']['welcart']['seccd'] : 'on';
$options['acting_settings']['welcart']['sec3d_activate'] = ( isset( $options['acting_settings']['welcart']['sec3d_activate'] ) ) ? $options['acting_settings']['welcart']['sec3d_activate'] : 'off';
$options['acting_settings']['welcart']['token_code'] = ( isset( $options['acting_settings']['welcart']['token_code'] ) ) ? $options['acting_settings']['welcart']['token_code'] : '';
$options['acting_settings']['welcart']['quickpay'] = ( isset( $options['acting_settings']['welcart']['quickpay'] ) ) ? $options['acting_settings']['welcart']['quickpay'] : 'off';
$options['acting_settings']['welcart']['chooseable_quickpay'] = ( isset( $options['acting_settings']['welcart']['chooseable_quickpay'] ) ) ? $options['acting_settings']['welcart']['chooseable_quickpay'] : 'on';
$options['acting_settings']['welcart']['operateid'] = ( isset( $options['acting_settings']['welcart']['operateid'] ) ) ? $options['acting_settings']['welcart']['operateid'] : '1Gathering';
$options['acting_settings']['welcart']['operateid_dlseller'] = ( isset( $options['acting_settings']['welcart']['operateid_dlseller'] ) ) ? $options['acting_settings']['welcart']['operateid_dlseller'] : '1Gathering';
$options['acting_settings']['welcart']['auto_settlement_mail'] = ( isset( $options['acting_settings']['welcart']['auto_settlement_mail'] ) ) ? $options['acting_settings']['welcart']['auto_settlement_mail'] : 'off';
$options['acting_settings']['welcart']['howtopay'] = ( isset( $options['acting_settings']['welcart']['howtopay'] ) ) ? $options['acting_settings']['welcart']['howtopay'] : '1';
$options['acting_settings']['welcart']['conv_activate'] = ( isset( $options['acting_settings']['welcart']['conv_activate'] ) ) ? $options['acting_settings']['welcart']['conv_activate'] : 'off';
$options['acting_settings']['welcart']['conv_limit'] = ( ! empty( $options['acting_settings']['welcart']['conv_limit'] ) ) ? $options['acting_settings']['welcart']['conv_limit'] : '7';
$options['acting_settings']['welcart']['conv_fee_type'] = ( isset( $options['acting_settings']['welcart']['conv_fee_type'] ) ) ? $options['acting_settings']['welcart']['conv_fee_type'] : '';
$options['acting_settings']['welcart']['conv_fee'] = ( isset( $options['acting_settings']['welcart']['conv_fee'] ) ) ? $options['acting_settings']['welcart']['conv_fee'] : '';
$options['acting_settings']['welcart']['conv_fee_limit_amount'] = ( isset( $options['acting_settings']['welcart']['conv_fee_limit_amount'] ) ) ? $options['acting_settings']['welcart']['conv_fee_limit_amount'] : '';
$options['acting_settings']['welcart']['conv_fee_first_amount'] = ( isset( $options['acting_settings']['welcart']['conv_fee_first_amount'] ) ) ? $options['acting_settings']['welcart']['conv_fee_first_amount'] : '';
$options['acting_settings']['welcart']['conv_fee_first_fee'] = ( isset( $options['acting_settings']['welcart']['conv_fee_first_fee'] ) ) ? $options['acting_settings']['welcart']['conv_fee_first_fee'] : '';
$options['acting_settings']['welcart']['conv_fee_amounts'] = ( isset( $options['acting_settings']['welcart']['conv_fee_amounts'] ) ) ? $options['acting_settings']['welcart']['conv_fee_amounts'] : array();
$options['acting_settings']['welcart']['conv_fee_fees'] = ( isset( $options['acting_settings']['welcart']['conv_fee_fees'] ) ) ? $options['acting_settings']['welcart']['conv_fee_fees'] : array();
$options['acting_settings']['welcart']['conv_fee_end_fee'] = ( isset( $options['acting_settings']['welcart']['conv_fee_end_fee'] ) ) ? $options['acting_settings']['welcart']['conv_fee_end_fee'] : '';
$options['acting_settings']['welcart']['atodene_activate'] = ( isset( $options['acting_settings']['welcart']['atodene_activate'] ) ) ? $options['acting_settings']['welcart']['atodene_activate'] : 'off';
$options['acting_settings']['welcart']['atodene_byitem'] = ( isset( $options['acting_settings']['welcart']['atodene_byitem'] ) ) ? $options['acting_settings']['welcart']['atodene_byitem'] : 'off';
$options['acting_settings']['welcart']['atodene_billing_method'] = ( isset( $options['acting_settings']['welcart']['atodene_billing_method'] ) ) ? $options['acting_settings']['welcart']['atodene_billing_method'] : '2';
$options['acting_settings']['welcart']['atodene_fee_type'] = ( isset( $options['acting_settings']['welcart']['atodene_fee_type'] ) ) ? $options['acting_settings']['welcart']['atodene_fee_type'] : '';
$options['acting_settings']['welcart']['atodene_fee'] = ( isset( $options['acting_settings']['welcart']['atodene_fee'] ) ) ? $options['acting_settings']['welcart']['atodene_fee'] : '';
$options['acting_settings']['welcart']['atodene_fee_limit_amount'] = ( isset( $options['acting_settings']['welcart']['atodene_fee_limit_amount'] ) ) ? $options['acting_settings']['welcart']['atodene_fee_limit_amount'] : '';
$options['acting_settings']['welcart']['atodene_fee_first_amount'] = ( isset( $options['acting_settings']['welcart']['atodene_fee_first_amount'] ) ) ? $options['acting_settings']['welcart']['atodene_fee_first_amount'] : '';
$options['acting_settings']['welcart']['atodene_fee_first_fee'] = ( isset( $options['acting_settings']['welcart']['atodene_fee_first_fee'] ) ) ? $options['acting_settings']['welcart']['atodene_fee_first_fee'] : '';
$options['acting_settings']['welcart']['atodene_fee_amounts'] = ( isset( $options['acting_settings']['welcart']['atodene_fee_amounts'] ) ) ? $options['acting_settings']['welcart']['atodene_fee_amounts'] : array();
$options['acting_settings']['welcart']['atodene_fee_fees'] = ( isset( $options['acting_settings']['welcart']['atodene_fee_fees'] ) ) ? $options['acting_settings']['welcart']['atodene_fee_fees'] : array();
$options['acting_settings']['welcart']['atodene_fee_end_fee'] = ( isset( $options['acting_settings']['welcart']['atodene_fee_end_fee'] ) ) ? $options['acting_settings']['welcart']['atodene_fee_end_fee'] : '';
$options['acting_settings']['welcart']['applepay_activate'] = ( isset( $options['acting_settings']['welcart']['applepay_activate'] ) ) ? $options['acting_settings']['welcart']['applepay_activate'] : 'off';
$options['acting_settings']['welcart']['applepay_tenant_id'] = ( isset( $options['acting_settings']['welcart']['applepay_tenant_id'] ) ) ? $options['acting_settings']['welcart']['applepay_tenant_id'] : '';
$options['acting_settings']['welcart']['applepay_quickpay'] = ( isset( $options['acting_settings']['welcart']['applepay_quickpay'] ) ) ? $options['acting_settings']['welcart']['applepay_quickpay'] : 'off';
$options['acting_settings']['welcart']['applepay_operateid'] = ( isset( $options['acting_settings']['welcart']['applepay_operateid'] ) ) ? $options['acting_settings']['welcart']['applepay_operateid'] : '1Gathering';
$options['acting_settings']['welcart']['applepay_key_aes'] = ( isset( $options['acting_settings']['welcart']['applepay_key_aes'] ) ) ? $options['acting_settings']['welcart']['applepay_key_aes'] : '';
$options['acting_settings']['welcart']['applepay_key_iv'] = ( isset( $options['acting_settings']['welcart']['applepay_key_iv'] ) ) ? $options['acting_settings']['welcart']['applepay_key_iv'] : '';
$options['acting_settings']['welcart']['applepay_certificate_path'] = ( isset( $options['acting_settings']['welcart']['applepay_certificate_path'] ) ) ? $options['acting_settings']['welcart']['applepay_certificate_path'] : '';
$options['acting_settings']['welcart']['applepay_certificate_key_pass'] = ( isset( $options['acting_settings']['welcart']['applepay_certificate_key_pass'] ) ) ? $options['acting_settings']['welcart']['applepay_certificate_key_pass'] : '';
$options['acting_settings']['welcart']['applepay_merchantidentifier'] = ( isset( $options['acting_settings']['welcart']['applepay_merchantidentifier'] ) ) ? $options['acting_settings']['welcart']['applepay_merchantidentifier'] : '';
$options['acting_settings']['welcart']['unionpay_activate'] = ( isset( $options['acting_settings']['welcart']['unionpay_activate'] ) ) ? $options['acting_settings']['welcart']['unionpay_activate'] : 'off';
$options['acting_settings']['welcart']['unionpay_key_aes'] = ( isset( $options['acting_settings']['welcart']['unionpay_key_aes'] ) ) ? $options['acting_settings']['welcart']['unionpay_key_aes'] : '';
$options['acting_settings']['welcart']['unionpay_key_iv'] = ( isset( $options['acting_settings']['welcart']['unionpay_key_iv'] ) ) ? $options['acting_settings']['welcart']['unionpay_key_iv'] : '';
$options['acting_settings']['welcart']['unionpay_pagelanguage'] = ( isset( $options['acting_settings']['welcart']['unionpay_pagelanguage'] ) ) ? $options['acting_settings']['welcart']['unionpay_pagelanguage'] : '';
$options['acting_settings']['welcart']['activate'] = ( isset( $options['acting_settings']['welcart']['activate'] ) ) ? $options['acting_settings']['welcart']['activate'] : 'off';
update_option( 'usces', $options );
$welcartpay_keys = get_option( 'usces_welcartpay_keys', array() );
if ( empty( $welcartpay_keys ) ) {
$welcartpay_keys = array(
'c0778c9aefe850d5ac8efed5d62ed281',
'd0771e4b42ef683223df03f9558c23fd',
'dfef8e46f7231e7e8271f906582a4e1d',
'ad6dbb5e26cc9db1fe5d876a75764559',
'4fc1738fffa5aa33792ddf8e5c183f72',
'd255b1cb2c4d20959e3c80e457e5274c',
'479ffcfe47db920e972a8c7932e581d9',
'43c7f4782379b05cf69bbbfb547e3312',
'524047b0e0ad64d4f7b42c14c77758e2',
'b848aed9c05cbf2c85d2889b274c18ec',
);
update_option( 'usces_welcartpay_keys', $welcartpay_keys );
}
$available_settlement = get_option( 'usces_available_settlement', array() );
if ( ! in_array( 'welcart', $available_settlement, true ) ) {
$settlement = array(
'welcart' => $this->acting_name,
);
$available_settlement = array_merge( $settlement, $available_settlement );
update_option( 'usces_available_settlement', $available_settlement );
}
$noreceipt_status = get_option( 'usces_noreceipt_status', array() );
if ( ! in_array( 'acting_welcart_conv', $noreceipt_status, true ) || ! in_array( 'acting_welcart_atodene', $noreceipt_status, true ) ) {
$noreceipt_status[] = 'acting_welcart_conv';
$noreceipt_status[] = 'acting_welcart_atodene';
update_option( 'usces_noreceipt_status', $noreceipt_status );
}
$this->unavailable_method = array(
'acting_escott_card',
'acting_zeus_card',
'acting_zeus_conv',
'acting_sbps_card',
);
}
/**
* Admin scripts.
* admin_print_footer_scripts
*/
public function admin_scripts() {
global $usces;
$admin_page = filter_input( INPUT_GET, 'page', FILTER_DEFAULT );
switch ( $admin_page ) :
case 'usces_settlement':
$settlement_selected = get_option( 'usces_settlement_selected', array() );
if ( in_array( 'welcart', $settlement_selected, true ) ) :
$acting_opts = $this->get_acting_settings();
?>
get_order_data( $order_id, 'direct' );
$payment = usces_get_payments_by_name( $order_data['order_payment_name'] );
if ( isset( $payment['settlement'] ) ) {
$acting_flg = $payment['settlement'];
}
if ( isset( $payment['name'] ) ) {
$dialog_title = $payment['name'];
}
}
}
$args = compact( 'order_id', 'acting_flg', 'admin_page', 'order_data' );
if ( in_array( $acting_flg, $this->pay_method, true ) ) :
?>
error_mes = '';
$options = get_option( 'usces', array() );
$payment_method = usces_get_system_option( 'usces_payment_method', 'settlement' );
$post_data = wp_unslash( $_POST );
unset( $options['acting_settings']['welcart'] );
$options['acting_settings']['welcart']['merchant_id'] = ( isset( $post_data['merchant_id'] ) ) ? trim( $post_data['merchant_id'] ) : '';
$options['acting_settings']['welcart']['merchant_pass'] = ( isset( $post_data['merchant_pass'] ) ) ? trim( $post_data['merchant_pass'] ) : '';
$options['acting_settings']['welcart']['tenant_id'] = ( isset( $post_data['tenant_id'] ) ) ? trim( $post_data['tenant_id'] ) : '0001';
$options['acting_settings']['welcart']['auth_key'] = ( isset( $post_data['auth_key'] ) ) ? trim( $post_data['auth_key'] ) : '';
$options['acting_settings']['welcart']['ope'] = ( isset( $post_data['ope'] ) ) ? $post_data['ope'] : '';
$options['acting_settings']['welcart']['card_activate'] = ( isset( $post_data['card_activate'] ) ) ? $post_data['card_activate'] : 'off';
$options['acting_settings']['welcart']['card_key_aes'] = ( isset( $post_data['card_key_aes'] ) ) ? $post_data['card_key_aes'] : '';
$options['acting_settings']['welcart']['card_key_iv'] = ( isset( $post_data['card_key_iv'] ) ) ? $post_data['card_key_iv'] : '';
$options['acting_settings']['welcart']['foreign_activate'] = ( isset( $post_data['foreign_activate'] ) ) ? $post_data['foreign_activate'] : '';
$options['acting_settings']['welcart']['seccd'] = ( isset( $post_data['seccd'] ) ) ? $post_data['seccd'] : 'on';
$options['acting_settings']['welcart']['sec3d_activate'] = ( isset( $post_data['sec3d_activate'] ) ) ? $post_data['sec3d_activate'] : 'off';
$options['acting_settings']['welcart']['token_code'] = ( isset( $post_data['token_code'] ) ) ? trim( $post_data['token_code'] ) : '';
$options['acting_settings']['welcart']['quickpay'] = ( isset( $post_data['quickpay'] ) ) ? $post_data['quickpay'] : '';
$options['acting_settings']['welcart']['chooseable_quickpay'] = ( isset( $post_data['chooseable_quickpay'] ) ) ? $post_data['chooseable_quickpay'] : 'on';
$options['acting_settings']['welcart']['operateid'] = ( isset( $post_data['operateid'] ) ) ? $post_data['operateid'] : '1Gathering';
$options['acting_settings']['welcart']['operateid_dlseller'] = ( isset( $post_data['operateid_dlseller'] ) ) ? $post_data['operateid_dlseller'] : '1Gathering';
$options['acting_settings']['welcart']['auto_settlement_mail'] = ( isset( $post_data['auto_settlement_mail'] ) ) ? $post_data['auto_settlement_mail'] : 'off';
$options['acting_settings']['welcart']['howtopay'] = ( isset( $post_data['howtopay'] ) ) ? $post_data['howtopay'] : '';
$options['acting_settings']['welcart']['conv_activate'] = ( isset( $post_data['conv_activate'] ) ) ? $post_data['conv_activate'] : 'off';
$options['acting_settings']['welcart']['conv_limit'] = ( ! empty( $post_data['conv_limit'] ) ) ? $post_data['conv_limit'] : '7';
$options['acting_settings']['welcart']['conv_fee_type'] = ( isset( $post_data['conv_fee_type'] ) ) ? $post_data['conv_fee_type'] : '';
$options['acting_settings']['welcart']['conv_fee'] = ( isset( $post_data['conv_fee'] ) ) ? $post_data['conv_fee'] : '';
$options['acting_settings']['welcart']['conv_fee_limit_amount'] = ( isset( $post_data[ 'conv_fee_limit_amount_' . $options['acting_settings']['welcart']['conv_fee_type'] ] ) ) ? $post_data[ 'conv_fee_limit_amount_' . $options['acting_settings']['welcart']['conv_fee_type'] ] : '';
$options['acting_settings']['welcart']['conv_fee_first_amount'] = ( isset( $post_data['conv_fee_first_amount'] ) ) ? $post_data['conv_fee_first_amount'] : '';
$options['acting_settings']['welcart']['conv_fee_first_fee'] = ( isset( $post_data['conv_fee_first_fee'] ) ) ? $post_data['conv_fee_first_fee'] : '';
$options['acting_settings']['welcart']['conv_fee_amounts'] = ( isset( $post_data['conv_fee_amounts'] ) ) ? explode( '|', $post_data['conv_fee_amounts'] ) : array();
$options['acting_settings']['welcart']['conv_fee_fees'] = ( isset( $post_data['conv_fee_fees'] ) ) ? explode( '|', $post_data['conv_fee_fees'] ) : array();
$options['acting_settings']['welcart']['conv_fee_end_fee'] = ( isset( $post_data['conv_fee_end_fee'] ) ) ? $post_data['conv_fee_end_fee'] : '';
$options['acting_settings']['welcart']['atodene_activate'] = ( isset( $post_data['atodene_activate'] ) ) ? $post_data['atodene_activate'] : 'off';
$options['acting_settings']['welcart']['atodene_byitem'] = ( isset( $post_data['atodene_byitem'] ) ) ? $post_data['atodene_byitem'] : 'off';
$options['acting_settings']['welcart']['atodene_billing_method'] = ( isset( $post_data['atodene_billing_method'] ) ) ? $post_data['atodene_billing_method'] : '2';
$options['acting_settings']['welcart']['atodene_fee_type'] = ( isset( $post_data['atodene_fee_type'] ) ) ? $post_data['atodene_fee_type'] : '';
$options['acting_settings']['welcart']['atodene_fee'] = ( isset( $post_data['atodene_fee'] ) ) ? $post_data['atodene_fee'] : '';
$options['acting_settings']['welcart']['atodene_fee_limit_amount'] = ( isset( $post_data[ 'atodene_fee_limit_amount_' . $options['acting_settings']['welcart']['atodene_fee_type'] ] ) ) ? $post_data[ 'atodene_fee_limit_amount_' . $options['acting_settings']['welcart']['atodene_fee_type'] ] : '';
$options['acting_settings']['welcart']['atodene_fee_first_amount'] = ( isset( $post_data['atodene_fee_first_amount'] ) ) ? $post_data['atodene_fee_first_amount'] : '';
$options['acting_settings']['welcart']['atodene_fee_first_fee'] = ( isset( $post_data['atodene_fee_first_fee'] ) ) ? $post_data['atodene_fee_first_fee'] : '';
$options['acting_settings']['welcart']['atodene_fee_amounts'] = ( isset( $post_data['atodene_fee_amounts'] ) ) ? explode( '|', $post_data['atodene_fee_amounts'] ) : array();
$options['acting_settings']['welcart']['atodene_fee_fees'] = ( isset( $post_data['atodene_fee_fees'] ) ) ? explode( '|', $post_data['atodene_fee_fees'] ) : array();
$options['acting_settings']['welcart']['atodene_fee_end_fee'] = ( isset( $post_data['atodene_fee_end_fee'] ) ) ? $post_data['atodene_fee_end_fee'] : '';
$options['acting_settings']['welcart']['applepay_activate'] = ( isset( $post_data['applepay_activate'] ) ) ? $post_data['applepay_activate'] : 'off';
$options['acting_settings']['welcart']['applepay_tenant_id'] = ( isset( $post_data['applepay_tenant_id'] ) ) ? $post_data['applepay_tenant_id'] : '';
$options['acting_settings']['welcart']['applepay_quickpay'] = ( isset( $post_data['applepay_quickpay'] ) ) ? $post_data['applepay_quickpay'] : '';
$options['acting_settings']['welcart']['applepay_operateid'] = ( isset( $post_data['applepay_operateid'] ) ) ? $post_data['applepay_operateid'] : '1Gathering';
$options['acting_settings']['welcart']['applepay_key_aes'] = ( isset( $post_data['applepay_key_aes'] ) ) ? $post_data['applepay_key_aes'] : '';
$options['acting_settings']['welcart']['applepay_key_iv'] = ( isset( $post_data['applepay_key_iv'] ) ) ? $post_data['applepay_key_iv'] : '';
$options['acting_settings']['welcart']['applepay_certificate_path'] = ( isset( $post_data['applepay_certificate_path'] ) ) ? $post_data['applepay_certificate_path'] : '';
$options['acting_settings']['welcart']['applepay_certificate_key_pass'] = ( isset( $post_data['applepay_certificate_key_pass'] ) ) ? $post_data['applepay_certificate_key_pass'] : '';
$options['acting_settings']['welcart']['applepay_merchantidentifier'] = ( isset( $post_data['applepay_merchantidentifier'] ) ) ? $post_data['applepay_merchantidentifier'] : '';
$options['acting_settings']['welcart']['unionpay_activate'] = ( isset( $post_data['unionpay_activate'] ) ) ? $post_data['unionpay_activate'] : 'off';
$options['acting_settings']['welcart']['unionpay_key_aes'] = ( isset( $post_data['unionpay_key_aes'] ) ) ? $post_data['unionpay_key_aes'] : '';
$options['acting_settings']['welcart']['unionpay_key_iv'] = ( isset( $post_data['unionpay_key_iv'] ) ) ? $post_data['unionpay_key_iv'] : '';
$options['acting_settings']['welcart']['unionpay_pagelanguage'] = ( isset( $post_data['unionpay_pagelanguage'] ) ) ? $post_data['unionpay_pagelanguage'] : '';
if ( 'on' === $options['acting_settings']['welcart']['card_activate'] || 'on' === $options['acting_settings']['welcart']['conv_activate'] ) {
$unavailable_activate = false;
foreach ( $payment_method as $settlement => $payment ) {
if ( in_array( $settlement, $this->unavailable_method, true ) && 'activate' === $payment['use'] ) {
$unavailable_activate = true;
break;
}
}
if ( $unavailable_activate ) {
$this->error_mes .= __( '* Settlement that can not be used together is activated.', 'usces' ) . '
';
} else {
if ( WCUtils::is_blank( $post_data['merchant_id'] ) ) {
$this->error_mes .= __( '* Please enter the Merchant ID.', 'usces' ) . '
';
}
if ( WCUtils::is_blank( $post_data['merchant_pass'] ) ) {
$this->error_mes .= __( '* Please enter the Merchant Password.', 'usces' ) . '
';
}
if ( WCUtils::is_blank( $post_data['tenant_id'] ) ) {
$this->error_mes .= __( '* Please enter the Tenant ID.', 'usces' ) . '
';
}
if ( WCUtils::is_blank( $post_data['auth_key'] ) ) {
$this->error_mes .= __( '* Please enter the Settlement auth key.', 'usces' ) . '
';
} else {
$auth_key = md5( $post_data['auth_key'] );
$welcartpay_keys = get_option( 'usces_welcartpay_keys', array() );
if ( ! in_array( $auth_key, $welcartpay_keys, true ) ) {
$this->error_mes .= __( '* The Settlement auth key is incorrect.', 'usces' ) . '
';
}
}
if ( WCUtils::is_blank( $post_data['ope'] ) ) {
$this->error_mes .= __( '* Please select the operating environment.', 'usces' ) . '
';
}
if ( WCUtils::is_blank( $post_data['operateid'] ) ) {
$this->error_mes .= __( '* Please select the processing classification.', 'usces' ) . '
';
}
if ( 'on' === $options['acting_settings']['welcart']['card_activate'] ) {
if ( WCUtils::is_blank( $post_data['token_code'] ) ) {
$this->error_mes .= __( '* Please enter the Token auth code.', 'usces' ) . '
';
}
}
}
}
if ( 'on' === $options['acting_settings']['welcart']['unionpay_activate'] ) {
if ( WCUtils::is_blank( $post_data['unionpay_key_aes'] ) ) {
$this->error_mes .= __( '* Please enter the UnionPay tripartite encryption key.', 'usces' ) . '
';
}
if ( WCUtils::is_blank( $post_data['unionpay_key_iv'] ) ) {
$this->error_mes .= __( '* Please enter the UnionPay tripartite initialization vector.', 'usces' ) . '
';
}
}
if ( '' === $this->error_mes ) {
$usces->action_status = 'success';
$usces->action_message = __( 'Options are updated.', 'usces' );
if ( ( 'on' === $options['acting_settings']['welcart']['card_activate'] || 'link' === $options['acting_settings']['welcart']['card_activate'] || 'token' === $options['acting_settings']['welcart']['card_activate'] ) ||
'on' === $options['acting_settings']['welcart']['conv_activate'] ||
'on' === $options['acting_settings']['welcart']['atodene_activate'] ||
'on' === $options['acting_settings']['welcart']['applepay_activate'] ||
'on' === $options['acting_settings']['welcart']['unionpay_activate'] ) {
$options['acting_settings']['welcart']['activate'] = 'on';
if ( 'public' === $options['acting_settings']['welcart']['ope'] ) {
$options['acting_settings']['welcart']['send_url'] = 'https://www.e-scott.jp/online/aut/OAUT002.do';
$options['acting_settings']['welcart']['send_url_member'] = 'https://www.e-scott.jp/online/crp/OCRP005.do';
$options['acting_settings']['welcart']['send_url_conv'] = 'https://www.e-scott.jp/online/cnv/OCNV005.do';
$options['acting_settings']['welcart']['redirect_url_conv'] = 'https://link.kessai.info/JLP/JLPcon';
$options['acting_settings']['welcart']['send_url_link'] = 'https://www.e-scott.jp/euser/snp/SSNP005ReferStart.do';
$options['acting_settings']['welcart']['api_token'] = 'https://www.e-scott.jp/euser/stn/CdGetJavaScript.do';
$options['acting_settings']['welcart']['send_url_token'] = 'https://www.e-scott.jp/online/atn/OATN005.do';
$options['acting_settings']['welcart']['send_url_3dsecure'] = 'https://www.e-scott.jp/online/tds/OTDS010.do';
$options['acting_settings']['welcart']['send_url_applepay'] = 'https://www.e-scott.jp/online/aut/OAUT002.do';
$options['acting_settings']['welcart']['send_url_applepay_member'] = 'https://www.e-scott.jp/online/crp/OCRP005.do';
$options['acting_settings']['welcart']['send_url_unionpay'] = 'https://www.e-scott.jp/online/agc/OAGC010.do';
} else {
$options['acting_settings']['welcart']['send_url'] = 'https://www.test.e-scott.jp/online/aut/OAUT002.do';
$options['acting_settings']['welcart']['send_url_member'] = 'https://www.test.e-scott.jp/online/crp/OCRP005.do';
$options['acting_settings']['welcart']['send_url_conv'] = 'https://www.test.e-scott.jp/online/cnv/OCNV005.do';
$options['acting_settings']['welcart']['redirect_url_conv'] = 'https://link.kessai.info/JLPCT/JLPcon';
$options['acting_settings']['welcart']['send_url_link'] = 'https://www.test.e-scott.jp/euser/snp/SSNP005ReferStart.do';
$options['acting_settings']['welcart']['api_token'] = 'https://www.test.e-scott.jp/euser/stn/CdGetJavaScript.do';
$options['acting_settings']['welcart']['send_url_token'] = 'https://www.test.e-scott.jp/online/atn/OATN005.do';
$options['acting_settings']['welcart']['send_url_3dsecure'] = 'https://www.test.e-scott.jp/online/tds/OTDS010.do';
$options['acting_settings']['welcart']['send_url_applepay'] = 'https://www.test.e-scott.jp/online/aut/OAUT002.do';
$options['acting_settings']['welcart']['send_url_applepay_member'] = 'https://www.test.e-scott.jp/online/crp/OCRP005.do';
$options['acting_settings']['welcart']['send_url_unionpay'] = 'https://www.test.e-scott.jp/online/agc/OAGC010.do';
$options['acting_settings']['welcart']['tenant_id'] = '0001';
}
$toactive = array();
if ( 'on' === $options['acting_settings']['welcart']['card_activate'] ) {
if ( ! empty( $options['acting_settings']['welcart']['token_code'] ) ) {
$options['acting_settings']['welcart']['card_activate'] = 'token';
}
}
if ( 'on' === $options['acting_settings']['welcart']['card_activate'] || 'link' === $options['acting_settings']['welcart']['card_activate'] || 'token' === $options['acting_settings']['welcart']['card_activate'] ) {
$usces->payment_structure['acting_welcart_card'] = __( 'Credit card transaction (WelcartPay)', 'usces' );
foreach ( $payment_method as $settlement => $payment ) {
if ( 'acting_welcart_card' === $settlement && 'deactivate' === $payment['use'] ) {
$toactive[] = $payment['name'];
}
}
} else {
unset( $usces->payment_structure['acting_welcart_card'] );
}
if ( 'on' === $options['acting_settings']['welcart']['conv_activate'] ) {
$usces->payment_structure['acting_welcart_conv'] = __( 'Online storage agency (WelcartPay)', 'usces' );
foreach ( $payment_method as $settlement => $payment ) {
if ( 'acting_welcart_conv' === $settlement && 'deactivate' === $payment['use'] ) {
$toactive[] = $payment['name'];
}
}
} else {
unset( $usces->payment_structure['acting_welcart_conv'] );
}
if ( 'on' === $options['acting_settings']['welcart']['atodene_activate'] ) {
$usces->payment_structure['acting_welcart_atodene'] = __( 'Postpay settlement (WelcartPay/ATODENE)', 'usces' );
foreach ( $payment_method as $settlement => $payment ) {
if ( 'acting_welcart_atodene' === $settlement && 'deactivate' === $payment['use'] ) {
$toactive[] = $payment['name'];
}
}
} else {
unset( $usces->payment_structure['acting_welcart_atodene'] );
}
if ( 'on' === $options['acting_settings']['welcart']['unionpay_activate'] ) {
$usces->payment_structure['acting_welcart_unionpay'] = __( 'UnionPay (WelcartPay)', 'usces' );
foreach ( $payment_method as $settlement => $payment ) {
if ( 'acting_welcart_unionpay' === $settlement && 'deactivate' === $payment['use'] ) {
$toactive[] = $payment['name'];
}
}
} else {
unset( $usces->payment_structure['acting_welcart_unionpay'] );
}
usces_admin_orderlist_show_wc_trans_id();
if ( 0 < count( $toactive ) ) {
$usces->action_message .= __( 'Please update the payment method to "Activate". General Setting > Payment Methods', 'usces' );
}
} else {
$options['acting_settings']['welcart']['activate'] = 'off';
unset( $usces->payment_structure['acting_welcart_card'] );
unset( $usces->payment_structure['acting_welcart_conv'] );
unset( $usces->payment_structure['acting_welcart_atodene'] );
unset( $usces->payment_structure['acting_welcart_applepay'] );
unset( $usces->payment_structure['acting_welcart_unionpay'] );
}
$deactivate = array();
foreach ( $payment_method as $settlement => $payment ) {
if ( ! array_key_exists( $settlement, $usces->payment_structure ) ) {
if ( 'deactivate' !== $payment['use'] ) {
$payment['use'] = 'deactivate';
$deactivate[] = $payment['name'];
usces_update_system_option( 'usces_payment_method', $payment['id'], $payment );
}
}
}
if ( 0 < count( $deactivate ) ) {
$deactivate_message = sprintf( __( '"Deactivate" %s of payment method.', 'usces' ), implode( ',', $deactivate ) );
$usces->action_message .= $deactivate_message;
}
} else {
$usces->action_status = 'error';
$usces->action_message = __( 'Data have deficiency.', 'usces' );
$options['acting_settings']['welcart']['activate'] = 'off';
unset( $usces->payment_structure['acting_welcart_card'] );
unset( $usces->payment_structure['acting_welcart_conv'] );
unset( $usces->payment_structure['acting_welcart_atodene'] );
unset( $usces->payment_structure['acting_welcart_applepay'] );
unset( $usces->payment_structure['acting_welcart_unionpay'] );
$deactivate = array();
foreach ( $payment_method as $settlement => $payment ) {
if ( in_array( $settlement, $this->pay_method, true ) ) {
if ( 'deactivate' !== $payment['use'] ) {
$payment['use'] = 'deactivate';
$deactivate[] = $payment['name'];
usces_update_system_option( 'usces_payment_method', $payment['id'], $payment );
}
}
}
if ( 0 < count( $deactivate ) ) {
$deactivate_message = sprintf( __( '"Deactivate" %s of payment method.', 'usces' ), implode( ',', $deactivate ) );
$usces->action_message .= $deactivate_message . __( 'Please complete the setup and update the payment method to "Activate".', 'usces' );
}
}
ksort( $usces->payment_structure );
update_option( 'usces', $options );
update_option( 'usces_payment_structure', $usces->payment_structure );
}
/**
* クレジット決済設定画面フォーム
* usces_action_settlement_tab_body
*/
public function settlement_tab_body() {
$acting_opts = $this->get_acting_settings();
$settlement_selected = get_option( 'usces_settlement_selected', array() );
if ( in_array( 'welcart', $settlement_selected, true ) ) :
$ope = ( isset( $acting_opts['ope'] ) && 'public' === $acting_opts['ope'] ) ? 'public' : 'test';
$card_activate = ( isset( $acting_opts['card_activate'] ) && ( 'on' === $acting_opts['card_activate'] || 'token' === $acting_opts['card_activate'] ) ) ? 'on' : $acting_opts['card_activate'];
$sec3d_activate = ( isset( $acting_opts['sec3d_activate'] ) && 'on' === $acting_opts['sec3d_activate'] ) ? 'on' : 'off';
$seccd = ( isset( $acting_opts['seccd'] ) && 'on' === $acting_opts['seccd'] ) ? 'on' : 'off';
$quickpay = ( isset( $acting_opts['quickpay'] ) && 'on' === $acting_opts['quickpay'] ) ? 'on' : 'off';
$chooseable_quickpay = ( isset( $acting_opts['chooseable_quickpay'] ) && 'on' === $acting_opts['chooseable_quickpay'] ) ? 'on' : 'off';
$operateid = ( isset( $acting_opts['operateid'] ) ) ? $acting_opts['operateid'] : '1Gathering';
if ( defined( 'WCEX_DLSELLER' ) ) {
$operateid_dlseller = ( isset( $acting_opts['operateid_dlseller'] ) ) ? $acting_opts['operateid_dlseller'] : '1Gathering';
$auto_settlement_mail = ( isset( $acting_opts['auto_settlement_mail'] ) && 'on' === $acting_opts['auto_settlement_mail'] ) ? 'on' : 'off';
}
$howtopay = ( isset( $acting_opts['howtopay'] ) ) ? $acting_opts['howtopay'] : '1';
$conv_activate = ( isset( $acting_opts['conv_activate'] ) && 'on' === $acting_opts['conv_activate'] ) ? 'on' : 'off';
$atodene_activate = ( isset( $acting_opts['atodene_activate'] ) && 'on' === $acting_opts['atodene_activate'] ) ? 'on' : 'off';
$atodene_byitem = ( isset( $acting_opts['atodene_byitem'] ) && 'on' === $acting_opts['atodene_byitem'] ) ? 'on' : 'off';
$atodene_billing_method = ( isset( $acting_opts['atodene_billing_method'] ) ) ? $acting_opts['atodene_billing_method'] : '2';
$unionpay_activate = ( isset( $acting_opts['unionpay_activate'] ) && 'on' === $acting_opts['unionpay_activate'] ) ? 'on' : 'off';
?>
error_mes ) :
?>
error_mes ); ?>
get_acting_settings();
if ( ( isset( $acting_opts['activate'] ) && 'on' === $acting_opts['activate'] ) &&
( isset( $acting_opts['card_activate'] ) && ( 'on' === $acting_opts['card_activate'] || 'link' === $acting_opts['card_activate'] || 'token' === $acting_opts['card_activate'] ) ) &&
( isset( $acting_opts['quickpay'] ) && 'on' === $acting_opts['quickpay'] ) ) {
$msg = '';
} else {
$zeus_opts = $usces->options['acting_settings']['zeus'];
$p_flag = ( ( isset( $zeus_opts['activate'] ) && 'on' === $zeus_opts['activate'] ) && ( isset( $zeus_opts['card_activate'] ) && 'on' === $zeus_opts['card_activate'] ) ) ? true : false;
$batch = ( isset( $zeus_opts['batch'] ) ) ? $zeus_opts['batch'] : 'off';
if ( ! $p_flag || 'off' === $batch ) {
$msg .= '
' . __( "In 'credit settlement Settings', please set to 'use' the quickpay of WelcartPay.", 'usces' ) . '
';
}
}
return $msg;
}
/**
* 入金通知処理および、三者間決済画面からのリダイレクト
* usces_after_cart_instant
*/
public function acting_transaction() {
global $usces;
/* 入金通知 */
if ( isset( $_REQUEST['MerchantFree1'] ) && isset( $_REQUEST['MerchantId'] ) && isset( $_REQUEST['TransactionId'] ) && isset( $_REQUEST['RecvNum'] ) && isset( $_REQUEST['NyukinDate'] ) &&
( isset( $_REQUEST['MerchantFree2'] ) && 'acting_welcart_conv' === wp_unslash( $_REQUEST['MerchantFree2'] ) ) ) {
$this->acting_notice_ip_guard( wp_unslash( $_REQUEST ) );
$acting_opts = $this->get_acting_settings();
if ( $acting_opts['merchant_id'] === wp_unslash( $_REQUEST['MerchantId'] ) ) {
$response_data = wp_unslash( $_REQUEST );
$order_id = usces_get_order_id_by_trans_id( $response_data['MerchantFree1'] );
if ( ! empty( $order_id ) ) {
/* オーダーステータス変更 */
usces_change_order_receipt( $order_id, 'receipted' );
/* ポイント付与 */
usces_action_acting_getpoint( $order_id );
$response_data['OperateId'] = 'receipted';
$order_meta = usces_unserialize( $usces->get_order_meta_value( $response_data['MerchantFree2'], $order_id ) );
$meta_value = array_merge( $order_meta, $response_data );
$usces->set_order_meta_value( $response_data['MerchantFree2'], usces_serialize( $meta_value ), $order_id );
$this->save_acting_history_log( $response_data, $order_id . '_' . $response_data['MerchantFree1'] );
usces_log( '[WelcartPay] conv receipted : ' . print_r( $response_data, true ), 'acting_transaction.log' );
} else {
usces_log( '[WelcartPay] conv receipted order_id error : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
}
header( 'HTTP/1.0 200 OK' );
die();
} elseif ( isset( $_REQUEST['EncryptValue'] ) ) {
$acting_opts = $this->get_acting_settings();
/* 銀聯決済 */
if ( isset( $_REQUEST['acting'] ) && $this->acting_unionpay === wp_unslash( $_REQUEST['acting'] ) && $this->is_validity_acting( 'unionpay' ) ) {
$encryptvalue = openssl_decrypt( $_REQUEST['EncryptValue'], 'aes-128-cbc', $acting_opts['unionpay_key_aes'], false, $acting_opts['unionpay_key_iv'] );
if ( $encryptvalue ) {
parse_str( $encryptvalue, $response_data );
if ( isset( $response_data['OperateId'] ) && isset( $response_data['ResponseCd'] ) && isset( $response_data['MerchantFree1'] ) &&
( isset( $response_data['MerchantFree2'] ) && 'acting_welcart_unionpay' === $response_data['MerchantFree2'] ) ) {
if ( 'OK' === $response_data['ResponseCd'] ) {
$order_data = usces_restore_order_acting_data( $response_data['MerchantFree1'] );
if ( ! empty( $order_data ) ) {
$response_data['acting'] = $this->acting_unionpay;
$res = $usces->order_processing( $response_data );
if ( 'ordercompletion' === $res ) {
$_nonce = ( isset( $order_data['_nonce'] ) ) ? $order_data['_nonce'] : wp_create_nonce( $this->acting_flg_unionpay );
wp_redirect(
add_query_arg(
array(
'acting' => $this->acting_unionpay,
'acting_return' => 1,
'result' => 1,
'_nonce' => $_nonce,
),
USCES_CART_URL
)
);
} else {
$logdata = array_merge( $usces_entries['order'], $response_data );
$log = array(
'acting' => $this->acting_unionpay,
'key' => $response_data['MerchantFree1'],
'result' => 'ORDER DATA REGISTERED ERROR',
'data' => $logdata,
);
usces_save_order_acting_error( $log );
wp_redirect(
add_query_arg(
array(
'acting' => $this->acting_unionpay,
'acting_return' => 0,
'result' => 0,
),
USCES_CART_URL
)
);
}
} else {
$log = array(
'acting' => $this->acting_unionpay,
'key' => $response_data['MerchantFree1'],
'result' => 'ORDER DATA RESTORE ERROR',
'data' => $response_data,
);
usces_save_order_acting_error( $log );
wp_redirect(
add_query_arg(
array(
'acting' => $this->acting_unionpay,
'acting_return' => 0,
'result' => 0,
),
USCES_CART_URL
)
);
}
} elseif ( 'KI0' === $response_data['ResponseCd'] ) {
/* Return to Merchant */
wp_redirect(
add_query_arg(
array(
'confirm' => 1,
),
USCES_CART_URL
)
);
} else {
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$response_data[ $cd ] = $this->response_message( $cd );
}
$log = array(
'acting' => $this->acting_unionpay,
'key' => $response_data['MerchantFree1'],
'result' => $response_data['ResponseCd'],
'data' => $response_data,
);
usces_save_order_acting_error( $log );
wp_redirect(
add_query_arg(
array(
'acting' => $this->acting_unionpay,
'acting_return' => 0,
'result' => 0,
),
USCES_CART_URL
)
);
}
}
exit();
}
/* 外部リンク(三者間画面)決済 */
} else {
$encryptvalue = openssl_decrypt( $_REQUEST['EncryptValue'], 'aes-128-cbc', $acting_opts['key_aes'], false, $acting_opts['key_iv'] );
if ( $encryptvalue ) {
parse_str( $encryptvalue, $response_data );
if ( isset( $response_data['OperateId'] ) && isset( $response_data['ResponseCd'] ) && ( isset( $response_data['MerchantId'] ) && $acting_opts['merchant_id'] === $response_data['MerchantId'] ) ) {
$cancel = array( 'P51', 'P52', 'P55', 'P56', 'P62', 'P63', 'P64', 'P65', 'P69', 'P70' );
if ( isset( $response_data['MerchantFree1'] ) && ( isset( $response_data['MerchantFree2'] ) && 'acting_welcart_card' === $response_data['MerchantFree2'] ) ) {
if ( 'OK' === $response_data['ResponseCd'] ) {
/* 会員登録・会員変更 */
if ( '4MemAdd' === $response_data['OperateId'] || '4MemChg' === $response_data['OperateId'] ) {
$member = $usces->get_member();
$usces->set_member_meta_value( 'wcpay_member_id', $response_data['KaiinId'], $member['ID'] );
$usces->set_member_meta_value( 'wcpay_member_passwd', $response_data['KaiinPass'], $member['ID'] );
$usces_entries = $usces->cart->get_entry();
$cart = $usces->cart->get_cart();
if ( usces_have_continue_charge() ) {
$chargingday = $usces->getItemChargingDay( $cart[0]['post_id'] );
if ( 99 === (int) $chargingday ) { /* 受注日課金 */
$operateid = $acting_opts['operateid'];
} else {
$operateid = '1Auth';
}
} else {
$operateid = $acting_opts['operateid'];
}
$operateid = apply_filters( 'usces_filter_escott_operateid', $operateid, $cart, $usces_entries['order']['total_full_price'] );
$home_url = str_replace( 'http://', 'https://', home_url( '/' ) );
$redirecturl = $home_url . '?page_id=' . USCES_CART_NUMBER;
$data_list = array();
$data_list['OperateId'] = $operateid;
$data_list['MerchantPass'] = $acting_opts['merchant_pass'];
$data_list['TransactionDate'] = $response_data['TransactionDate'];
$data_list['MerchantFree1'] = $response_data['MerchantFree1'];
$data_list['MerchantFree2'] = $response_data['MerchantFree2'];
$data_list['MerchantFree3'] = $this->merchantfree3;
$data_list['TenantId'] = $acting_opts['tenant_id'];
$data_list['KaiinId'] = $response_data['KaiinId'];
$data_list['KaiinPass'] = $response_data['KaiinPass'];
$data_list['PayType'] = '01';
$data_list['Amount'] = $usces_entries['order']['total_full_price'];
$data_list['ProcNo'] = '0000000';
if ( isset( $response_data['EncodeXId3D'] ) ) {
$data_list['EncodeXId3D'] = $response_data['EncodeXId3D'];
}
if ( isset( $response_data['TransactionId3D'] ) ) {
$data_list['TransactionId3D'] = $response_data['TransactionId3D'];
}
if ( isset( $response_data['MessageVersionNo3D'] ) ) {
$data_list['MessageVersionNo3D'] = $response_data['MessageVersionNo3D'];
}
if ( isset( $response_data['TransactionStatus3D'] ) ) {
$data_list['TransactionStatus3D'] = $response_data['TransactionStatus3D'];
}
if ( isset( $response_data['CAVVAlgorithm3D'] ) ) {
$data_list['CAVVAlgorithm3D'] = $response_data['CAVVAlgorithm3D'];
}
if ( isset( $response_data['ECI3D'] ) ) {
$data_list['ECI3D'] = $response_data['ECI3D'];
}
if ( isset( $response_data['CAVV3D'] ) ) {
$data_list['CAVV3D'] = $response_data['CAVV3D'];
}
if ( isset( $response_data['SecureResultCode'] ) ) {
$data_list['SecureResultCode'] = $response_data['SecureResultCode'];
}
if ( isset( $response_data['DSTransactionId'] ) ) {
$data_list['DSTransactionId'] = $response_data['DSTransactionId'];
}
if ( isset( $response_data['ThreeDSServerTransactionId'] ) ) {
$data_list['ThreeDSServerTransactionId'] = $response_data['ThreeDSServerTransactionId'];
}
$data_list['RedirectUrl'] = $redirecturl;
$data_query = http_build_query( $data_list );
$encryptvalue = openssl_encrypt( $data_query, 'aes-128-cbc', $acting_opts['key_aes'], false, $acting_opts['key_iv'] );
wp_redirect(
add_query_arg(
array(
'MerchantId' => $acting_opts['merchant_id'],
'EncryptValue' => urlencode( $encryptvalue ),
),
$acting_opts['send_url_link']
)
);
exit();
/* 決済 */
} else {
$order_data = usces_restore_order_acting_data( $response_data['MerchantFree1'] );
if ( ! empty( $order_data ) ) {
$res = $usces->order_processing( $response_data );
if ( 'ordercompletion' === $res ) {
$_nonce = ( isset( $order_data['_nonce'] ) ) ? $order_data['_nonce'] : wp_create_nonce( $this->acting_flg_card );
wp_redirect(
add_query_arg(
array(
'acting' => $this->acting_card,
'acting_return' => 1,
'result' => 1,
'_nonce' => $_nonce,
),
USCES_CART_URL
)
);
} else {
$log = array(
'acting' => $this->acting_card,
'key' => $response_data['MerchantFree1'],
'result' => 'ORDER DATA REGISTERED ERROR',
'data' => $response_data,
);
usces_save_order_acting_error( $log );
wp_redirect(
add_query_arg(
array(
'acting' => $this->acting_card,
'acting_return' => 0,
'result' => 0,
),
USCES_CART_URL
)
);
}
} else {
$log = array(
'acting' => $this->acting_card,
'key' => $response_data['MerchantFree1'],
'result' => 'ORDER DATA RESTORE ERROR',
'data' => $response_data,
);
usces_save_order_acting_error( $log );
wp_redirect(
add_query_arg(
array(
'acting' => $this->acting_card,
'acting_return' => 0,
'result' => 0,
),
USCES_CART_URL
)
);
}
}
} elseif ( in_array( $response_data['ResponseCd'], $cancel, true ) ) {
wp_redirect(
add_query_arg(
array(
'acting' => $this->acting_card,
'confirm' => 1,
),
USCES_CART_URL
)
);
} else {
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$response_data[ $cd ] = $this->response_message( $cd );
}
$log = array(
'acting' => $this->acting_card,
'key' => $response_data['MerchantFree1'],
'result' => $response_data['ResponseCd'],
'data' => $response_data,
);
usces_save_order_acting_error( $log );
wp_redirect(
add_query_arg(
array(
'acting' => $this->acting_card,
'acting_return' => 0,
'result' => 0,
),
USCES_CART_URL
)
);
}
} else {
/* マイページからの会員登録・会員変更 */
if ( '4MemAdd' === $response_data['OperateId'] || '4MemChg' === $response_data['OperateId'] ) {
if ( 'OK' === $response_data['ResponseCd'] ) {
$member = $usces->get_member();
$usces->set_member_meta_value( 'wcpay_member_id', $response_data['KaiinId'], $member['ID'] );
$usces->set_member_meta_value( 'wcpay_member_passwd', $response_data['KaiinPass'], $member['ID'] );
} elseif ( in_array( $response_data['ResponseCd'], $cancel ) ) { // phpcs:ignore
} else {
usces_log( '[WelcartPay] 4MemChg NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
wp_redirect( USCES_MEMBER_URL );
}
}
exit();
}
}
}
}
}
/**
* 管理画面決済処理
* usces_action_admin_ajax
*/
public function admin_ajax() {
global $usces;
$mode = filter_input( INPUT_POST, 'mode', FILTER_DEFAULT );
$data = array();
switch ( $mode ) {
/* 取引参照 */
case 'get_welcartpay_card':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$order_num = filter_input( INPUT_POST, 'order_num' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
if ( is_null( $order_id ) || is_null( $order_num ) || is_null( $trans_id ) ) {
$data['status'] = 'NG';
$data['result'] = '';
wp_send_json( $data );
break;
}
$res = '';
$log_data = array();
if ( '9999999999' === $trans_id ) {
$member_id = filter_input( INPUT_POST, 'member_id' );
$response_member = $this->escott_member_reference( $member_id ); /* e-SCOTT 会員照会 */
if ( 'OK' === $response_member['ResponseCd'] ) {
$order_data = $usces->get_order_data( $order_id, 'direct' );
$total_full_price = $order_data['order_item_total_price'] - $order_data['order_usedpoint'] + $order_data['order_discount'] + $order_data['order_shipping_charge'] + $order_data['order_cod_fee'] + $order_data['order_tax'];
$res .= '' . __( 'New', 'usces' ) . '
';
$res .= '';
$res .= '';
$res .= ''; /* 与信 */
$res .= ''; /* 与信売上計上 */
$res .= '
';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
';
$res .= '';
$res .= '
' . __( 'Credit card information not registered', 'usces' ) . '
'; /* カード情報未登録 */
$res .= '
';
}
$data['status'] = 'OK';
$data['result'] = $res;
} else {
if ( 1 === (int) $order_num ) {
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_card', $order_id ) );
} else {
$log_data = $this->get_acting_log( $order_id, $order_id . '_' . $trans_id );
$acting_data = usces_unserialize( $log_data[0]['log'] );
}
$operateid = $this->get_acting_operateid( $order_id . '_' . $trans_id );
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_card';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$params['send_url'] = $acting_opts['send_url'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '1Search',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
)
);
$response_data = $this->connection( $params );
if ( 'OK' === $response_data['ResponseCd'] ) {
$latest_log = $this->get_acting_latest_log( $order_id . '_' . $trans_id );
if ( isset( $latest_log['OperateId'] ) ) {
$class = ' card-' . mb_strtolower( substr( $latest_log['OperateId'], 1 ) );
$status_name = $this->get_operate_name( $latest_log['OperateId'] );
$res .= '' . $status_name . '
';
$res .= '';
$res .= '';
if ( '1Delete' === $latest_log['OperateId'] ) {
$res .= ''; /* 再オーソリ */
} else {
if ( '1Auth' === $operateid && '1Capture' !== $latest_log['OperateId'] && '1Gathering' !== $latest_log['OperateId'] ) {
$res .= ''; /* 再オーソリ */
$res .= ''; /* 売上計上 */
}
if ( '1Delete' !== $latest_log['OperateId'] ) {
$res .= ''; /* 取消 */
}
if ( '1Change' !== $latest_log['OperateId'] ) {
$res .= ''; /* 利用額変更 */
}
}
$res .= '
';
}
} else {
if ( 'K12' === $response_data['ResponseCd'] ) {
$res .= '' . __( 'Expired', 'usces' ) . '
';
$res .= '';
$res .= '
K12 : ' . __( 'Handling expired.', 'usces' ) . '
';
$res .= '
';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
';
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 1Search connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
}
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['result'] = $res;
}
wp_send_json( $data );
break;
/* 売上計上 */
case 'capture_welcartpay_card':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$order_num = filter_input( INPUT_POST, 'order_num' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
$amount = filter_input( INPUT_POST, 'amount' );
if ( is_null( $order_id ) || is_null( $order_num ) || is_null( $trans_id ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$acting_status = '';
$log_data = array();
if ( 1 === (int) $order_num ) {
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_card', $order_id ) );
} else {
$log_data = $this->get_acting_log( $order_id, $order_id . '_' . $trans_id );
$acting_data = usces_unserialize( $log_data[0]['log'] );
}
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_card';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$member_id = filter_input( INPUT_POST, 'member_id' );
$response_member = $this->escott_member_reference( $member_id ); /* e-SCOTT 会員照会 */
if ( 'OK' === $response_member['ResponseCd'] ) {
$param_list['KaiinId'] = $response_member['KaiinId'];
$param_list['KaiinPass'] = $response_member['KaiinPass'];
}
$params['send_url'] = $acting_opts['send_url'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '1Capture',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
'SalesDate' => $transaction_date,
)
);
$response_data = $this->connection( $params );
if ( 'K81' === $response_data['ResponseCd'] ) {
$param_list['KaiinId'] = '';
$param_list['KaiinPass'] = '';
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '1Capture',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
'SalesDate' => $transaction_date,
)
);
$response_data = $this->connection( $params );
}
if ( 'OK' === $response_data['ResponseCd'] ) {
$class = ' card-' . mb_strtolower( substr( $response_data['OperateId'], 1 ) );
$status_name = $this->get_operate_name( $response_data['OperateId'] );
$res .= '' . $status_name . '
';
$res .= '';
$res .= '';
$res .= ''; /* 取消 */
$res .= ''; /* 利用額変更 */
$res .= '
';
$acting_status = '' . $status_name . '';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
';
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 1Capture connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
do_action( 'usces_action_admin_' . $mode, $response_data, $order_id, $trans_id );
if ( ! isset( $response_data['Amount'] ) ) {
$response_data['Amount'] = $amount;
}
$response_data = apply_filters( 'usces_filter_escott_capture_history_log', $response_data, $order_id );
$this->save_acting_history_log( $response_data, $order_id . '_' . $trans_id );
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['acting_status'] = $acting_status;
$data['result'] = $res;
$this->save_admin_log( $order_id, $order_id . '_' . $trans_id );
wp_send_json( $data );
break;
/* 取消/返品 */
case 'delete_welcartpay_card':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$order_num = filter_input( INPUT_POST, 'order_num' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
$amount = filter_input( INPUT_POST, 'amount' );
if ( is_null( $order_id ) || is_null( $order_num ) || is_null( $trans_id ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$acting_status = '';
$log_data = array();
if ( 1 === (int) $order_num ) {
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_card', $order_id ) );
} else {
$log_data = $this->get_acting_log( $order_id, $order_id . '_' . $trans_id );
$acting_data = usces_unserialize( $log_data[0]['log'] );
}
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_card';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$member_id = filter_input( INPUT_POST, 'member_id' );
$response_member = $this->escott_member_reference( $member_id ); /* e-SCOTT 会員照会 */
if ( 'OK' === $response_member['ResponseCd'] ) {
$param_list['KaiinId'] = $response_member['KaiinId'];
$param_list['KaiinPass'] = $response_member['KaiinPass'];
}
$params['send_url'] = $acting_opts['send_url'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '1Delete',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
)
);
$response_data = $this->connection( $params );
if ( 'K81' === $response_data['ResponseCd'] ) {
$param_list['KaiinId'] = '';
$param_list['KaiinPass'] = '';
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '1Delete',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
)
);
$response_data = $this->connection( $params );
}
if ( 'OK' === $response_data['ResponseCd'] ) {
$class = ' card-' . mb_strtolower( substr( $response_data['OperateId'], 1 ) );
$status_name = $this->get_operate_name( $response_data['OperateId'] );
$res .= '' . $status_name . '
';
$res .= '';
$res .= '';
$res .= ''; /* 再オーソリ */
$res .= '
';
$acting_status = '' . $status_name . '';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
';
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 1Delete connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
do_action( 'usces_action_admin_' . $mode, $response_data, $order_id, $trans_id );
if ( ! isset( $response_data['Amount'] ) ) {
$response_data['Amount'] = $amount;
}
$response_data = apply_filters( 'usces_filter_escott_delete_history_log', $response_data, $order_id );
$this->save_acting_history_log( $response_data, $order_id . '_' . $trans_id );
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['acting_status'] = $acting_status;
$data['result'] = $res;
$this->save_admin_log( $order_id, $order_id . '_' . $trans_id );
wp_send_json( $data );
break;
/* 利用額変更 */
case 'change_welcartpay_card':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$order_num = filter_input( INPUT_POST, 'order_num' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
$amount = filter_input( INPUT_POST, 'amount' );
if ( is_null( $order_id ) || is_null( $order_num ) || is_null( $trans_id ) || is_null( $amount ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$log_data = array();
if ( 1 === (int) $order_num ) {
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_card', $order_id ) );
} else {
$log_data = $this->get_acting_log( $order_id, $order_id . '_' . $trans_id );
$acting_data = usces_unserialize( $log_data[0]['log'] );
}
$operateid = $this->get_acting_operateid( $order_id . '_' . $trans_id );
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_card';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$member_id = filter_input( INPUT_POST, 'member_id' );
$response_member = $this->escott_member_reference( $member_id ); /* e-SCOTT 会員照会 */
if ( 'OK' === $response_member['ResponseCd'] ) {
$param_list['KaiinId'] = $response_member['KaiinId'];
$param_list['KaiinPass'] = $response_member['KaiinPass'];
}
$params['send_url'] = $acting_opts['send_url'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '1Change',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
'Amount' => $amount,
)
);
$response_data = $this->connection( $params );
if ( 'K81' === $response_data['ResponseCd'] ) {
$param_list['KaiinId'] = '';
$param_list['KaiinPass'] = '';
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '1Change',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
'Amount' => $amount,
)
);
$response_data = $this->connection( $params );
}
if ( 'OK' === $response_data['ResponseCd'] ) {
$class = ' card-' . mb_strtolower( substr( $operateid, 1 ) );
$status_name = $this->get_operate_name( $operateid );
$res .= '' . $status_name . '
';
$res .= '';
$res .= '';
if ( '1Capture' !== $operateid && '1Gathering' !== $operateid ) {
$res .= ''; /* 売上計上 */
}
$res .= ''; /* 取消 */
$res .= ''; /* 利用額変更 */
$res .= '
';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
'; /* エラー */
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 1Change connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
do_action( 'usces_action_admin_' . $mode, $response_data, $order_id, $trans_id );
if ( ! isset( $response_data['Amount'] ) ) {
$response_data['Amount'] = $amount;
}
$response_data = apply_filters( 'usces_filter_escott_change_history_log', $response_data, $order_id );
$this->save_acting_history_log( $response_data, $order_id . '_' . $trans_id );
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['result'] = $res;
$this->save_admin_log( $order_id, $order_id . '_' . $trans_id );
wp_send_json( $data );
break;
/* 与信 */
case 'auth_welcartpay_card':
/* 与信売上計上 */
case 'gathering_welcartpay_card':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$order_num = filter_input( INPUT_POST, 'order_num' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
$amount = filter_input( INPUT_POST, 'amount' );
if ( is_null( $order_id ) || is_null( $order_num ) || is_null( $trans_id ) || is_null( $amount ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$acting_status = '';
$log_data = array();
if ( '9999999999' === $trans_id ) {
$trans_id = usces_acting_key();
} else {
if ( 1 === (int) $order_num ) {
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_card', $order_id ) );
} else {
$log_data = $this->get_acting_log( $order_id, $order_id . '_' . $trans_id );
$acting_data = usces_unserialize( $log_data[0]['log'] );
}
}
$operateid = ( 'auth_welcartpay_card' === $mode ) ? '1Auth' : '1Gathering';
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_card';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$member_id = filter_input( INPUT_POST, 'member_id' );
$response_member = $this->escott_member_reference( $member_id ); /* e-SCOTT 会員照会 */
if ( 'OK' === $response_member['ResponseCd'] ) {
$params['send_url'] = $acting_opts['send_url'];
$params['param_list'] = array_merge(
$param_list,
array(
'KaiinId' => $response_member['KaiinId'],
'KaiinPass' => $response_member['KaiinPass'],
'OperateId' => $operateid,
'PayType' => '01',
'Amount' => $amount,
)
);
$response_data = $this->connection( $params );
if ( 'OK' === $response_data['ResponseCd'] ) {
if ( 1 === (int) $order_num ) {
$cardlast4 = substr( $response_member['CardNo'], -4 );
$expyy = substr( date_i18n( 'Y', current_time( 'timestamp' ) ), 0, 2 ) . substr( $response_member['CardExp'], 0, 2 );
$expmm = substr( $response_member['CardExp'], 2, 2 );
$response_data['acting'] = $this->acting_card;
$response_data['CardNo'] = $cardlast4;
$response_data['CardExp'] = $expyy . '/' . $expmm;
$usces->set_order_meta_value( 'acting_welcart_card', usces_serialize( $response_data ), $order_id );
$usces->set_order_meta_value( 'trans_id', $trans_id, $order_id );
$usces->set_order_meta_value( 'wc_trans_id', $trans_id, $order_id );
} else {
if ( $log_data ) {
$this->update_acting_log( $response_data, $order_id . '_' . $trans_id );
}
}
$class = ' card-' . mb_strtolower( substr( $operateid, 1 ) );
$status_name = $this->get_operate_name( $operateid );
$res .= '' . $status_name . '
';
$res .= '';
$res .= '';
if ( '1Capture' !== $operateid && '1Gathering' !== $operateid ) {
$res .= ''; /* 売上計上 */
}
$res .= ''; /* 取消 */
$res .= ''; /* 利用額変更 */
$res .= '
';
$acting_status = '' . $status_name . '';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
'; /* エラー */
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] ' . $operateid . ' connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
do_action( 'usces_action_admin_' . $mode, $response_data, $order_id, $trans_id );
if ( ! isset( $response_data['Amount'] ) ) {
$response_data['Amount'] = $amount;
}
$response_data = apply_filters( 'usces_filter_escott_' . mb_strtolower( substr( $operateid, 1 ) ) . '_history_log', $response_data, $order_id );
$this->save_acting_history_log( $response_data, $order_id . '_' . $trans_id );
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['acting_status'] = $acting_status;
$data['result'] = $res;
$data['trans_id'] = $trans_id;
} else {
$res .= '' . __( 'Error', 'usces' ) . '
'; /* エラー */
$res .= '';
$responsecd = explode( '|', $response_member['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 4MemRefM connection NG : ' . print_r( $response_member, true ), 'acting_transaction.log' );
$data['status'] = $response_member['ResponseCd'];
$data['result'] = $res;
}
wp_send_json( $data );
break;
/* 再オーソリ */
case 'reauth_welcartpay_card':
check_admin_referer( 'order_edit', 'wc_nonce' );
$res = '';
$order_id = filter_input( INPUT_POST, 'order_id' );
$order_num = filter_input( INPUT_POST, 'order_num' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
$amount = filter_input( INPUT_POST, 'amount' );
if ( is_null( $order_id ) || is_null( $order_num ) || is_null( $trans_id ) || is_null( $amount ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$acting_status = '';
if ( 1 === (int) $order_num ) {
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_card', $order_id ) );
} else {
$log_data = $this->get_acting_log( $order_id, $order_id . '_' . $trans_id );
$acting_data = usces_unserialize( $log_data[0]['log'] );
}
$operateid = $this->get_acting_operateid( $order_id . '_' . $trans_id );
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_card';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$member_id = filter_input( INPUT_POST, 'member_id' );
$response_member = $this->escott_member_reference( $member_id ); /* e-SCOTT 会員照会 */
if ( 'OK' === $response_member['ResponseCd'] ) {
$param_list['KaiinId'] = $response_member['KaiinId'];
$param_list['KaiinPass'] = $response_member['KaiinPass'];
}
// if ( '1Gathering' === $operateid ) {
$param_list['SalesDate'] = $transaction_date;
// }
$params['send_url'] = $acting_opts['send_url'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '1ReAuth',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
'Amount' => $amount,
)
);
$response_data = $this->connection( $params );
if ( 'K81' === $response_data['ResponseCd'] ) {
$param_list['KaiinId'] = '';
$param_list['KaiinPass'] = '';
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '1ReAuth',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
'Amount' => $amount,
)
);
$response_data = $this->connection( $params );
}
if ( 'OK' === $response_data['ResponseCd'] ) {
$acting_data['TransactionId'] = $response_data['TransactionId'];
$acting_data['TransactionDate'] = $response_data['TransactionDate'];
$acting_data['ProcessId'] = $response_data['ProcessId'];
$acting_data['ProcessPass'] = $response_data['ProcessPass'];
$usces->set_order_meta_value( 'acting_welcart_card', usces_serialize( $acting_data ), $order_id );
$class = ' card-' . mb_strtolower( substr( $operateid, 1 ) );
$status_name = $this->get_operate_name( $operateid );
$res .= '' . $status_name . '
';
$res .= '';
$res .= '';
if ( '1Capture' !== $operateid && '1Gathering' !== $operateid ) {
$res .= ''; /* 売上計上 */
}
$res .= ''; /* 取消 */
$res .= ''; /* 利用額変更 */
$res .= '
';
$acting_status = '' . $status_name . '';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
'; /* エラー */
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 1ReAuth connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
do_action( 'usces_action_admin_' . $mode, $response_data, $order_id, $trans_id );
if ( ! isset( $response_data['Amount'] ) ) {
$response_data['Amount'] = $amount;
}
$response_data = apply_filters( 'usces_filter_escott_reauth_history_log', $response_data, $order_id );
$this->save_acting_history_log( $response_data, $order_id . '_' . $trans_id );
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['acting_status'] = $acting_status;
$data['result'] = $res;
$this->save_admin_log( $order_id, $order_id . '_' . $trans_id );
wp_send_json( $data );
break;
/* 決済エラー */
case 'error_welcartpay_card':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$order_num = filter_input( INPUT_POST, 'order_num' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
if ( is_null( $order_id ) || is_null( $order_num ) || is_null( $trans_id ) ) {
$data['status'] = 'NG';
$data['result'] = '';
wp_send_json( $data );
break;
}
$res = '';
$member_id = filter_input( INPUT_POST, 'member_id' );
$response_member = $this->escott_member_reference( $member_id ); /* e-SCOTT 会員照会 */
if ( 'OK' === $response_member['ResponseCd'] ) {
$order_data = $usces->get_order_data( $order_id, 'direct' );
$total_full_price = $order_data['order_item_total_price'] - $order_data['order_usedpoint'] + $order_data['order_discount'] + $order_data['order_shipping_charge'] + $order_data['order_cod_fee'] + $order_data['order_tax'];
$res .= '' . __( 'Repayment', 'usces' ) . '
'; /* 再決済 */
$res .= '';
$res .= '';
$res .= ''; /* 与信 */
$res .= ''; /* 与信売上計上 */
$res .= '
';
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
} else {
$res .= '' . __( 'Settlement error', 'usces' ) . '
'; /* エラー */
$res .= '';
$res .= '
' . __( 'Credit card information not registered', 'usces' ) . '
'; /* カード情報未登録 */
$res .= '
';
}
$data['status'] = 'OK';
$data['result'] = $res;
wp_send_json( $data );
break;
/* 継続課金情報更新 */
case 'continuation_update':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$member_id = filter_input( INPUT_POST, 'member_id' );
$contracted_year = filter_input( INPUT_POST, 'contracted_year' );
$contracted_month = filter_input( INPUT_POST, 'contracted_month' );
$contracted_day = filter_input( INPUT_POST, 'contracted_day' );
$charged_year = filter_input( INPUT_POST, 'charged_year' );
$charged_month = filter_input( INPUT_POST, 'charged_month' );
$charged_day = filter_input( INPUT_POST, 'charged_day' );
$price = filter_input( INPUT_POST, 'price' );
if ( is_null( $price ) ) {
$price = 0;
}
$status = filter_input( INPUT_POST, 'status' );
if ( version_compare( WCEX_DLSELLER_VERSION, '3.0-beta', '<=' ) ) {
$continue_data = usces_unserialize( $usces->get_member_meta_value( 'continuepay_' . $order_id, $member_id ) );
} else {
$continue_data = $this->get_continuation_data( $order_id, $member_id );
}
if ( ! $continue_data ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
/* 継続中→停止 */
if ( 'continuation' === $continue_data['status'] && 'cancellation' === $status ) {
if ( version_compare( WCEX_DLSELLER_VERSION, '3.0-beta', '<=' ) ) {
$continue_data['status'] = 'cancellation';
$usces->set_member_meta_value( 'continuepay_' . $order_id, usces_serialize( $continue_data ), $member_id );
} else {
$this->update_continuation_data( $order_id, $member_id, $continue_data, true );
}
} else {
if ( ! empty( $contracted_year ) && ! empty( $contracted_month ) && ! empty( $contracted_day ) ) {
$contracted_date = ( empty( $continue_data['contractedday'] ) ) ? dlseller_next_contracting( $order_id ) : $continue_data['contractedday'];
if ( $contracted_date ) {
$new_contracted_date = $contracted_year . '-' . $contracted_month . '-' . $contracted_day;
if ( ! $this->isdate( $new_contracted_date ) ) {
$data['status'] = 'NG';
$data['message'] = __( 'Next contract renewal date is incorrect.', 'dlseller' );
wp_send_json( $data );
}
}
} else {
$new_contracted_date = '';
}
$new_charged_date = $charged_year . '-' . $charged_month . '-' . $charged_day;
if ( ! $this->isdate( $new_charged_date ) ) {
$data['status'] = 'NG';
$data['message'] = __( 'Next settlement date is incorrect.', 'dlseller' );
wp_send_json( $data );
}
$tomorrow = date_i18n( 'Y-m-d', strtotime( '+1 day' ) );
if ( $new_charged_date < $tomorrow ) {
$data['status'] = 'NG';
$data['message'] = sprintf( __( 'The next settlement date must be after %s.', 'dlseller' ), $tomorrow );
wp_send_json( $data );
}
$continue_data['contractedday'] = $new_contracted_date;
$continue_data['chargedday'] = $new_charged_date;
$continue_data['price'] = usces_crform( $price, false, false, 'return', false );
$continue_data['status'] = $status;
if ( version_compare( WCEX_DLSELLER_VERSION, '3.0-beta', '<=' ) ) {
$usces->set_member_meta_value( 'continuepay_' . $order_id, usces_serialize( $continue_data ), $member_id );
} else {
$this->update_continuation_data( $order_id, $member_id, $continue_data );
}
}
$data['status'] = 'OK';
wp_send_json( $data );
break;
/* オンライン収納代行データ登録 */
case 'add_welcartpay_conv':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
$paylimit = filter_input( INPUT_POST, 'paylimit' );
$amount = filter_input( INPUT_POST, 'amount' );
if ( is_null( $order_id ) || is_null( $trans_id ) || is_null( $paylimit ) || is_null( $amount ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$acting_status = '';
$order_data = $usces->get_order_data( $order_id, 'direct' );
$namekanji = $order_data['order_name1'] . $order_data['order_name2'];
$namekana = ( ! empty( $order_data['order_name3'] ) ) ? $order_data['order_name3'] . $order_data['order_name4'] : $namekanji;
$telno = $order_data['order_tel'];
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_conv';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$params['send_url'] = $acting_opts['send_url_conv'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '2Add',
'PayLimit' => $paylimit . '2359',
'Amount' => $amount,
'NameKanji' => $namekanji,
'NameKana' => $namekana,
'TelNo' => $telno,
'ReturnURL' => home_url( '/' ),
)
);
$response_data = $this->connection( $params );
if ( 'OK' === $response_data['ResponseCd'] ) {
$response_data['acting'] = $this->acting_conv;
$response_data['PayLimit'] = $params['param_list']['PayLimit'];
$response_data['Amount'] = $params['param_list']['Amount'];
$usces->set_order_meta_value( 'acting_welcart_conv', usces_serialize( $response_data ), $order_id );
$freearea = trim( $response_data['FreeArea'] );
$url = add_query_arg(
array(
'code' => $freearea,
'rkbn' => 2,
),
$acting_opts['redirect_url_conv']
);
$usces->set_order_meta_value( 'welcart_conv_url', $url, $order_id );
$res .= '' . __( 'Unpaid', 'usces' ) . '
'; /* 未入金 */
$res .= '';
$res .= '';
$res .= ''; /* 取消 */
$res .= ''; /* 変更 */
$res .= '
';
$acting_status = '' . __( 'Unpaid', 'usces' ) . '';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
'; /* エラー */
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 2Add connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
do_action( 'usces_action_admin_' . $mode, $response_data, $order_id, $trans_id );
if ( ! isset( $response_data['Amount'] ) ) {
$response_data['Amount'] = $amount;
}
$response_data = apply_filters( 'usces_filter_escott_add_conv_history_log', $response_data, $order_id );
$this->save_acting_history_log( $response_data, $order_id . '_' . $trans_id );
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['acting_status'] = $acting_status;
$data['result'] = $res;
wp_send_json( $data );
break;
/* オンライン収納代行データ変更 */
case 'change_welcartpay_conv':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
$paylimit = filter_input( INPUT_POST, 'paylimit' );
$amount = filter_input( INPUT_POST, 'amount' );
if ( is_null( $order_id ) || is_null( $trans_id ) || is_null( $paylimit ) || is_null( $amount ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_conv', $order_id ) );
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_conv';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$params['send_url'] = $acting_opts['send_url_conv'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '2Chg',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
'PayLimit' => $paylimit . '2359',
'Amount' => $amount,
)
);
$response_data = $this->connection( $params );
if ( 'OK' === $response_data['ResponseCd'] ) {
$acting_data['PayLimit'] = $params['param_list']['PayLimit'];
$acting_data['Amount'] = $params['param_list']['Amount'];
$usces->set_order_meta_value( 'acting_welcart_conv', usces_serialize( $acting_data ), $order_id );
$freearea = trim( $response_data['FreeArea'] );
$url = add_query_arg(
array(
'code' => $freearea,
'rkbn' => 2,
),
$acting_opts['redirect_url_conv']
);
$usces->set_order_meta_value( 'welcart_conv_url', $url, $order_id );
$res .= '' . __( 'Unpaid', 'usces' ) . '
'; /* 未入金 */
$res .= '';
if ( isset( $acting_data['PayLimit'] ) ) {
$res .= '| ' . __( 'Payment due', 'usces' ) . ' | ' . $acting_data['PayLimit'] . ' |
';
}
if ( isset( $acting_data['Amount'] ) ) {
$res .= '| ' . __( 'Payment amount', 'usces' ) . ' | ' . $acting_data['Amount'] . ' |
';
}
$res .= '
';
$res .= '';
$res .= ''; /* 取消 */
$res .= '
';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
'; /* エラー */
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 2Chg connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
do_action( 'usces_action_admin_' . $mode, $response_data, $order_id, $trans_id );
if ( ! isset( $response_data['Amount'] ) ) {
$response_data['Amount'] = $amount;
}
$response_data = apply_filters( 'usces_filter_escott_change_conv_history_log', $response_data, $order_id );
$this->save_acting_history_log( $response_data, $order_id . '_' . $trans_id );
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['result'] = $res;
wp_send_json( $data );
break;
/* オンライン収納代行データ削除 */
case 'delete_welcartpay_conv':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
$amount = filter_input( INPUT_POST, 'amount' );
if ( is_null( $order_id ) || is_null( $trans_id ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$acting_status = '';
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_conv', $order_id ) );
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_conv';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$params['send_url'] = $acting_opts['send_url_conv'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '2Del',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
)
);
$response_data = $this->connection( $params );
if ( 'OK' === $response_data['ResponseCd'] ) {
$res .= '' . __( 'Canceled', 'usces' ) . '
'; /* 取消済み */
$res .= '';
if ( isset( $acting_data['PayLimit'] ) ) {
$paylimit = substr( $acting_data['PayLimit'], 0, 8 );
$res .= '| ' . __( 'Payment due', 'usces' ) . ' | ' . $paylimit . ' |
';
}
if ( isset( $acting_data['Amount'] ) ) {
$res .= '| ' . __( 'Payment amount', 'usces' ) . ' | ' . $acting_data['Amount'] . ' |
';
}
$res .= '
';
$acting_status = '' . __( 'Canceled', 'usces' ) . '';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
'; /* エラー */
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 2Del connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
do_action( 'usces_action_admin_' . $mode, $response_data, $order_id, $trans_id );
if ( ! isset( $response_data['Amount'] ) ) {
$response_data['Amount'] = ( isset( $acting_data['Amount'] ) ) ? $acting_data['Amount'] : $amount;
}
$response_data = apply_filters( 'usces_filter_escott_delete_conv_history_log', $response_data, $order_id );
$this->save_acting_history_log( $response_data, $order_id . '_' . $trans_id );
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['acting_status'] = $acting_status;
$data['result'] = $res;
wp_send_json( $data );
break;
/* オンライン収納代行データ入金結果参照 */
case 'get_welcartpay_conv':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
if ( is_null( $order_id ) || is_null( $trans_id ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_conv', $order_id ) );
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_conv';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$params['send_url'] = $acting_opts['send_url_conv'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '2Ref',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
)
);
$response_data = $this->connection( $params );
if ( 'OK' === $response_data['ResponseCd'] ) {
if ( isset( $response_data['NyukinDate'] ) ) {
$res .= '' . __( 'Paid', 'usces' ) . '
'; /* 入金済 */
$res .= '';
if ( isset( $response_data['RecvNum'] ) ) {
$res .= '| ' . __( 'Receipt number', 'usces' ) . ' | ' . $response_data['RecvNum'] . ' |
'; /* 受付番号 */
}
if ( isset( $response_data['NyukinDate'] ) ) {
$res .= '| ' . __( 'Deposit date', 'usces' ) . ' | ' . $response_data['NyukinDate'] . ' |
'; /* 入金日時 */
}
if ( isset( $response_data['CvsCd'] ) ) {
$cvs_name = $this->get_cvs_name( $response_data['CvsCd'] );
$res .= '| ' . __( 'Convenience store code', 'usces' ) . ' | ' . $cvs_name . ' |
'; /* 収納機関コード */
}
if ( isset( $response_data['TenantCd'] ) ) {
$res .= '| ' . __( 'Tenant code', 'usces' ) . ' | ' . $response_data['TenantCd'] . ' |
'; /* 店舗コード */
}
if ( isset( $response_data['Amount'] ) ) {
$res .= '| ' . __( 'Payment amount', 'usces' ) . ' | ' . $response_data['Amount'] . __( usces_crcode( 'return' ), 'usces' ) . ' |
';
}
$res .= '
';
} else {
$paylimit = substr( $acting_data['PayLimit'], 0, 8 );
$expiration = $this->check_paylimit( $order_id, $trans_id );
$res .= '' . __( 'Unpaid', 'usces' ); /* 未入金 */
if ( $expiration ) {
$res .= __( '(Expired)', 'usces' ); /* (期限切れ) */
}
$res .= '
';
$res .= '';
$latest_log = $this->get_acting_latest_log( $order_id . '_' . $trans_id );
if ( isset( $latest_log['OperateId'] ) ) {
$res .= '';
if ( '2Del' !== $latest_log['OperateId'] ) {
$res .= ''; /* 取消 */
}
if ( '2Chg' !== $latest_log['OperateId'] ) {
$res .= ''; /* 変更 */
}
$res .= '
';
}
}
} else {
$latest_log = $this->get_acting_latest_log( $order_id . '_' . $trans_id );
if ( isset( $latest_log['OperateId'] ) && '2Del' === $latest_log['OperateId'] && 'K12' === $response_data['ResponseCd'] ) {
$paylimit = substr( $acting_data['PayLimit'], 0, 8 );
$res .= '' . __( 'Canceled', 'usces' ) . '
'; /* 取消済み */
$res .= '';
$res .= '';
$res .= ''; /* 登録 */
$res .= '
';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
'; /* エラー */
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 2Ref connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
}
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['result'] = $res;
wp_send_json( $data );
break;
/* 銀聯取引参照 */
case 'get_welcartpay_unionpay':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$order_num = filter_input( INPUT_POST, 'order_num' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
if ( is_null( $order_id ) || is_null( $order_num ) || is_null( $trans_id ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$log_data = array();
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_unionpay', $order_id ) );
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_unionpay';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$params['send_url'] = $acting_opts['send_url_unionpay'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '11Search',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
)
);
$response_data = $this->connection( $params );
if ( 'OK' === $response_data['ResponseCd'] ) {
$latest_log = $this->get_acting_latest_log( $order_id . '_' . $trans_id );
if ( isset( $latest_log['OperateId'] ) ) {
$class = ' card-' . mb_strtolower( substr( $latest_log['OperateId'], 2 ) );
$status_name = $this->get_operate_name( $latest_log['OperateId'] );
$res .= '' . $status_name . '
';
$res .= '';
if ( isset( $latest_log['Amount'] ) ) {
$res .= '| ' . __( 'Spending amount', 'usces' ) . ' | ' . usces_crform( $latest_log['Amount'], false, true, 'return', true ) . ' |
';
}
if ( isset( $latest_log['Status'] ) ) {
$res .= '| ' . __( 'Transaction status', 'usces' ) . ' | ' . $this->get_unionpay_status_name( $latest_log['Status'] ) . ' |
';
}
$res .= '
';
$res .= '';
if ( '11Delete' !== $latest_log['OperateId'] ) {
$res .= ''; /* 取消 */
}
$res .= '
';
}
} else {
if ( 'K12' === $response_data['ResponseCd'] ) {
$res .= '' . __( 'Expired', 'usces' ) . '
';
$res .= '';
$res .= '
K12 : ' . __( 'Handling expired.', 'usces' ) . '
';
$res .= '
';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
';
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 11Search connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
}
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['result'] = $res;
wp_send_json( $data );
break;
/* 銀聯取消 */
case 'delete_welcartpay_unionpay':
check_admin_referer( 'order_edit', 'wc_nonce' );
$order_id = filter_input( INPUT_POST, 'order_id' );
$order_num = filter_input( INPUT_POST, 'order_num' );
$trans_id = filter_input( INPUT_POST, 'trans_id' );
$amount = filter_input( INPUT_POST, 'amount' );
if ( is_null( $order_id ) || is_null( $order_num ) || is_null( $trans_id ) ) {
$data['status'] = 'NG';
wp_send_json( $data );
break;
}
$res = '';
$acting_status = '';
$log_data = array();
$acting_data = usces_unserialize( $usces->get_order_meta_value( 'acting_welcart_unionpay', $order_id ) );
$acting_opts = $this->get_acting_settings();
$transaction_date = $this->get_transaction_date();
$param_list = array();
$params = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['MerchantPass'] = $acting_opts['merchant_pass'];
$param_list['TransactionDate'] = $transaction_date;
$param_list['MerchantFree1'] = $trans_id;
$param_list['MerchantFree2'] = 'acting_welcart_unionpay';
$param_list['MerchantFree3'] = $this->merchantfree3;
$param_list['TenantId'] = $acting_opts['tenant_id'];
$params['send_url'] = $acting_opts['send_url_unionpay'];
$params['param_list'] = array_merge(
$param_list,
array(
'OperateId' => '11Delete',
'ProcessId' => $acting_data['ProcessId'],
'ProcessPass' => $acting_data['ProcessPass'],
)
);
$response_data = $this->connection( $params );
if ( 'OK' === $response_data['ResponseCd'] ) {
$class = ' card-' . mb_strtolower( substr( $response_data['OperateId'], 2 ) );
$status_name = $this->get_operate_name( $response_data['OperateId'] );
$res .= '' . $status_name . '
';
$res .= '';
$res .= '| ' . __( 'Spending amount', 'usces' ) . ' | ' . usces_crform( $amount, false, true, 'return', true ) . ' |
';
$res .= '
';
$acting_status = '' . $status_name . '';
} else {
$res .= '' . __( 'Error', 'usces' ) . '
';
$res .= '';
$responsecd = explode( '|', $response_data['ResponseCd'] );
foreach ( (array) $responsecd as $cd ) {
$res .= '
' . $cd . ' : ' . $this->response_message( $cd ) . '
';
}
$res .= '
';
usces_log( '[WelcartPay] 11Delete connection NG : ' . print_r( $response_data, true ), 'acting_transaction.log' );
}
do_action( 'usces_action_admin_' . $mode, $response_data, $order_id, $trans_id );
if ( ! isset( $response_data['Amount'] ) ) {
$response_data['Amount'] = $amount;
}
$response_data = apply_filters( 'usces_filter_escott_delete_unionpay_history_log', $response_data, $order_id );
$this->save_acting_history_log( $response_data, $order_id . '_' . $trans_id );
$res .= $this->settlement_history( $order_id . '_' . $trans_id );
$data['status'] = $response_data['ResponseCd'];
$data['acting_status'] = $acting_status;
$data['result'] = $res;
wp_send_json( $data );
break;
}
}
/**
* 決済状況
* usces_filter_orderlist_detail_value
*
* @param string $detail HTML.
* @param string $value Settlement info key.
* @param string $key Settlement info value.
* @param int $order_id Order number.
* @return array
*/
public function orderlist_settlement_status( $detail, $value, $key, $order_id ) {
global $usces;
if ( 'wc_trans_id' !== $key || empty( $value ) ) {
return $detail;
}
$order_data = $usces->get_order_data( $order_id, 'direct' );
$payment = usces_get_payments_by_name( $order_data['order_payment_name'] );
$acting_flg = ( isset( $payment['settlement'] ) ) ? $payment['settlement'] : '';
if ( 'acting_welcart_card' === $acting_flg ) {
$trans_id = $usces->get_order_meta_value( 'trans_id', $order_id );
$latest_log = $this->get_acting_latest_log( $order_id . '_' . $trans_id );
if ( isset( $latest_log['OperateId'] ) ) {
$class = ( ctype_digit( substr( $latest_log['OperateId'], 0, 1 ) ) ) ? ' card-' . mb_strtolower( substr( $latest_log['OperateId'], 1 ) ) : ' card-' . $latest_log['OperateId'];
$detail = '' . $value . '' . $this->get_operate_name( $latest_log['OperateId'] ) . ' | ';
} elseif ( defined( 'WCEX_AUTO_DELIVERY' ) ) {
$regular_id = $usces->get_order_meta_value( 'regular_id', $order_id );
if ( ! empty( $regular_id ) && empty( $trans_id ) ) {
$detail = '' . $value . '' . __( 'Card unregistered', 'usces' ) . ' | ';
}
}
} elseif ( 'acting_welcart_conv' === $acting_flg ) {
$trans_id = $usces->get_order_meta_value( 'trans_id', $order_id );
$expiration = $this->check_paylimit( $order_id, $trans_id );
if ( $expiration ) {
if ( ! $usces->is_status( 'receipted', $order_data['order_status'] ) ) {
$detail = '' . $value . '' . __( 'Expired', 'usces' ) . ' | ';
}
} else {
$latest_log = $this->get_acting_latest_log( $order_id . '_' . $trans_id );
if ( isset( $latest_log['OperateId'] ) && '2Del' === $latest_log['OperateId'] ) {
$detail = '' . $value . '' . __( 'Canceled', 'usces' ) . ' | ';
} else {
$management_status = apply_filters( 'usces_filter_management_status', get_option( 'usces_management_status' ) );
if ( $usces->is_status( 'noreceipt', $value ) ) {
$detail = '' . $value . '' . esc_html( $management_status['noreceipt'] ) . ' | ';
} elseif ( $usces->is_status( 'receipted', $value ) ) {
$detail = '' . $value . '' . esc_html( $management_status['receipted'] ) . ' | ';
} else {
$detail = '' . $value . ' | ';
}
}
}
} elseif ( 'acting_welcart_unionpay' === $acting_flg ) {
$trans_id = $usces->get_order_meta_value( 'trans_id', $order_id );
$latest_log = $this->get_acting_latest_log( $order_id . '_' . $trans_id );
if ( isset( $latest_log['OperateId'] ) ) {
$class = ( ctype_digit( substr( $latest_log['OperateId'], 0, 2 ) ) ) ? ' card-' . mb_strtolower( substr( $latest_log['OperateId'], 2 ) ) : ' card-' . $latest_log['OperateId'];
$detail = '' . $value . '' . $this->get_operate_name( $latest_log['OperateId'] ) . ' | ';
}
}
return $detail;
}
/**
* 受注編集画面に表示する決済情報の値整形
* usces_filter_settle_info_field_value
*
* @param string $value Settlement information value.
* @param string $key Settlement information key.
* @param string $acting Acting type.
* @return string
*/
public function settlement_info_field_value( $value, $key, $acting ) {
if ( 'welcart_card' !== $acting && 'welcart_conv' !== $acting && 'welcart_atodene' !== $acting && 'welcart_applepay' !== $acting && 'welcart_unionpay' !== $acting ) {
return $value;
}
switch ( $key ) {
case 'acting':
switch ( $value ) {
case 'welcart_card':
$value = __( 'WelcartPay - Credit card transaction', 'usces' );
break;
case 'welcart_conv':
$value = __( 'WelcartPay - Online storage agency', 'usces' );
break;
case 'welcart_atodene':
$value = __( 'WelcartPay - Postpay settlement', 'usces' );
break;
case 'welcart_applepay':
$value = __( 'WelcartPay - Apple Pay', 'usces' );
break;
case 'welcart_unionpay':
$value = __( 'WelcartPay - UnionPay', 'usces' );
break;
}
break;
}
$value = parent::settlement_info_field_value( $value, $key, $acting );
return $value;
}
/**
* 受注編集画面【ステータス】
* usces_action_order_edit_form_status_block_middle
*
* @param array $data Order data.
* @param array $cscs_meta Custom field data.
* @param array $action_args Compact array( 'order_action', 'order_id', 'cart' ).
*/
public function settlement_status( $data, $cscs_meta, $action_args ) {
global $usces;
extract( $action_args ); // phpcs:ignore
if ( 'new' !== $order_action && ! empty( $order_id ) ) {
$payment = usces_get_payments_by_name( $data['order_payment_name'] );
if ( in_array( $payment['settlement'], $this->pay_method ) ) {
$acting_data = usces_unserialize( $usces->get_order_meta_value( $payment['settlement'], $order_id ) );
$merchantfree1 = ( isset( $acting_data['MerchantFree1'] ) ) ? $acting_data['MerchantFree1'] : '';
if ( ! empty( $merchantfree1 ) ) {
$status_name = '';
$class = '';
$latest_log = $this->get_acting_latest_log( $order_id . '_' . $merchantfree1 );
if ( isset( $latest_log['OperateId'] ) ) {
switch ( $payment['settlement'] ) {
case 'acting_welcart_conv':
$expiration = $this->check_paylimit( $order_id, $merchantfree1 );
if ( $expiration ) {
if ( ! $usces->is_status( 'receipted', $data['order_status'] ) ) {
$class = ' conv-expiration';
$status_name = __( 'Expired', 'usces' );
}
} else {
if ( '2Del' === $latest_log['OperateId'] ) {
$class = ' conv-del';
$status_name = __( 'Canceled', 'usces' );
}
}
break;
case 'acting_welcart_card':
$class = ' card-' . mb_strtolower( substr( $latest_log['OperateId'], 1 ) );
$status_name = $this->get_operate_name( $latest_log['OperateId'] );
break;
case 'acting_welcart_unionpay':
$class = ' card-' . mb_strtolower( substr( $latest_log['OperateId'], 2 ) );
$status_name = $this->get_operate_name( $latest_log['OperateId'] );
break;
}
if ( ! empty( $status_name ) ) {
echo '
| ' . esc_html__( 'Settlement status', 'usces' ) . ' |
' . esc_html( $status_name ) . ' |
';
}
}
} elseif ( defined( 'WCEX_AUTO_DELIVERY' ) ) {
$regular_id = $usces->get_order_meta_value( 'regular_id', $order_id );
if ( ! empty( $regular_id ) ) {
echo '
| ' . esc_html__( 'Settlement status', 'usces' ) . ' |
' . esc_html__( 'Card unregistered', 'usces' ) . ' |
';
}
}
}
}
}
/**
* 受注編集画面【支払情報】
* usces_action_order_edit_form_settle_info
*
* @param array $data Order data.
* @param array $action_args Compact array( $order_action, $order_id, $cart ).
*/
public function settlement_information( $data, $action_args ) {
global $usces;
extract( $action_args ); // phpcs:ignore
if ( 'new' !== $order_action && ! empty( $order_id ) ) {
$payment = usces_get_payments_by_name( $data['order_payment_name'] );
if ( in_array( $payment['settlement'], $this->pay_method, true ) ) {
$acting_data = usces_unserialize( $usces->get_order_meta_value( $payment['settlement'], $order_id ) );
$merchantfree1 = ( isset( $acting_data['MerchantFree1'] ) && isset( $acting_data['ProcessId'] ) && isset( $acting_data['ProcessPass'] ) ) ? $acting_data['MerchantFree1'] : '9999999999';
echo '';
}
}
}
/**
* 決済情報ダイアログ
* usces_action_endof_order_edit_form
*
* @param array $data Order data.
* @param array $action_args Compact array( $order_action, $order_id, $cart ).
*/
public function settlement_dialog( $data, $action_args ) {
global $usces;
extract( $action_args ); // phpcs:ignore
if ( 'new' !== $order_action && ! empty( $order_id ) ) :
$payment = usces_get_payments_by_name( $data['order_payment_name'] );
if ( in_array( $payment['settlement'], $this->pay_method, true ) ) :
?>
get_acting_settings();
/* 外部リンク(三者間画面) */
if ( 'acting_welcart_card' === $acting_flg && 'link' === $acting_opts['card_activate'] ) {
$usces_entries = $usces->cart->get_entry();
$cart = $usces->cart->get_cart();
if ( ! $usces_entries || ! $cart ) {
wp_redirect( USCES_CART_URL );
exit();
}
if ( ! wp_verify_nonce( $_REQUEST['_nonce'], $acting_flg ) ) {
wp_redirect( USCES_CART_URL );
exit();
}
parse_str( $post_query, $post_data );
$transaction_date = $this->get_transaction_date();
$rand = $post_data['rand'];
$member = $usces->get_member();
usces_save_order_acting_data( $rand );
$param_list = array();
$params = array();
$quick_member = ( isset( $post_data['quick_member'] ) ) ? $post_data['quick_member'] : '';
if ( 'add' !== $quick_member ) {
if ( ! empty( $member['ID'] ) && 'on' === $acting_opts['quickpay'] ) {
$kaiin_id = $this->get_quick_kaiin_id( $member['ID'] );
$kaiin_pass = $this->get_quick_pass( $member['ID'] );
} else {
$kaiin_id = '';
$kaiin_pass = '';
}
if ( empty( $kaiin_id ) || empty( $kaiin_pass ) ) {
$quick_member = 'no';
}
}
$home_url = str_replace( 'http://', 'https://', home_url( '/' ) );
$redirecturl = $home_url . '?page_id=' . USCES_CART_NUMBER;
if ( ! empty( $member['ID'] ) && 'on' === $acting_opts['quickpay'] && ( 'add' === $quick_member || 'update' === $quick_member ) ) {
$data_list = array();
$data_list['MerchantPass'] = $acting_opts['merchant_pass'];
$data_list['TransactionDate'] = $transaction_date;
$data_list['MerchantFree1'] = $rand;
$data_list['MerchantFree2'] = $acting_flg;
$data_list['MerchantFree3'] = $this->merchantfree3;
$data_list['TenantId'] = $acting_opts['tenant_id'];
if ( 'add' === $quick_member ) {
$data_list['OperateId'] = '4MemAdd';
$data_list['KaiinId'] = $this->make_kaiin_id( $member['ID'] );
$data_list['KaiinPass'] = $this->make_kaiin_pass();
} elseif ( 'update' === $quick_member ) {
$data_list['OperateId'] = '4MemChg';
$data_list['KaiinId'] = $kaiin_id;
$data_list['KaiinPass'] = $kaiin_pass;
}
$data_list['ProcNo'] = '0000000';
$data_list['RedirectUrl'] = $redirecturl;
$data_query = http_build_query( $data_list );
$encryptvalue = openssl_encrypt( $data_query, 'aes-128-cbc', $acting_opts['key_aes'], false, $acting_opts['key_iv'] );
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['EncryptValue'] = urlencode( $encryptvalue );
wp_redirect( add_query_arg( $param_list, $acting_opts['send_url_link'] ) );
} else {
if ( usces_have_continue_charge() ) {
$chargingday = $usces->getItemChargingDay( $cart[0]['post_id'] );
if ( 99 === (int) $chargingday ) { /* 受注日課金 */
$operateid = $acting_opts['operateid'];
} else {
$operateid = '1Auth';
}
} else {
$operateid = $acting_opts['operateid'];
}
$operateid = apply_filters( 'usces_filter_escott_operateid', $operateid, $cart, $usces_entries['order']['total_full_price'] );
$data_list = array();
$data_list['OperateId'] = $operateid;
$data_list['MerchantPass'] = $acting_opts['merchant_pass'];
$data_list['TransactionDate'] = $transaction_date;
$data_list['MerchantFree1'] = $rand;
$data_list['MerchantFree2'] = $acting_flg;
$data_list['MerchantFree3'] = $this->merchantfree3;
$data_list['TenantId'] = $acting_opts['tenant_id'];
if ( 'on' === $acting_opts['quickpay'] && ! empty( $kaiin_id ) && ! empty( $kaiin_pass ) ) {
$data_list['KaiinId'] = $kaiin_id;
$data_list['KaiinPass'] = $kaiin_pass;
}
$data_list['PayType'] = '01';
$data_list['Amount'] = $usces_entries['order']['total_full_price'];
$data_list['ProcNo'] = '0000000';
$data_list['RedirectUrl'] = $redirecturl;
$data_query = http_build_query( $data_list );
$encryptvalue = openssl_encrypt( $data_query, 'aes-128-cbc', $acting_opts['key_aes'], false, $acting_opts['key_iv'] );
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['EncryptValue'] = urlencode( $encryptvalue );
wp_redirect( add_query_arg( $param_list, $acting_opts['send_url_link'] ) );
}
exit();
/* 銀聯 */
} elseif ( 'acting_welcart_unionpay' === $acting_flg ) {
$home_url = str_replace( 'http://', 'https://', home_url( '/' ) );
$usces_entries = $usces->cart->get_entry();
$cart = $usces->cart->get_cart();
if ( ! $usces_entries || ! $cart ) {
wp_redirect( USCES_CART_URL );
exit();
}
if ( ! wp_verify_nonce( $_REQUEST['_nonce'], $acting_flg ) ) {
wp_redirect( USCES_CART_URL );
exit();
}
parse_str( $post_query, $post_data );
$transaction_date = $this->get_transaction_date();
$rand = $post_data['rand'];
usces_save_order_acting_data( $rand );
$data_list = array();
$data_list['MerchantPass'] = $acting_opts['merchant_pass'];
$data_list['TransactionDate'] = $transaction_date;
$data_list['MerchantFree1'] = $rand;
$data_list['MerchantFree2'] = $acting_flg;
$data_list['MerchantFree3'] = $this->merchantfree3;
$data_list['TenantId'] = $acting_opts['tenant_id'];
$data_list['Amount'] = $usces_entries['order']['total_full_price'];
$data_list['CurrencyId'] = '392'; /* JPY */
if ( ! empty( $acting_opts['unionpay_pagelanguage'] ) ) {
$data_list['PageLanguage'] = $acting_opts['unionpay_pagelanguage'];
}
// $data_list['PayCardType'] = '00';
$data_list['ProcNo'] = sprintf( '%020d', $rand );
$data_list['SuccessURL'] = USCES_CART_URL . $usces->delim . 'acting=' . $this->acting_unionpay . '&acting_return=1';
$data_list['ErrorURL'] = USCES_CART_URL . $usces->delim . 'acting=' . $this->acting_unionpay . '&acting_return=0';
$data_list['StatusNoticeURL'] = $home_url;
$data_list['EndNoticeURL'] = $home_url;
$data_query = http_build_query( $data_list );
$encryptvalue = openssl_encrypt( $data_query, 'aes-128-cbc', $acting_opts['unionpay_key_aes'], false, $acting_opts['unionpay_key_iv'] );
$param_list = array();
$param_list['MerchantId'] = $acting_opts['merchant_id'];
$param_list['OperateId'] = '11Gathering';
$param_list['EncryptValue'] = $encryptvalue;
$gc = new SLNConnection();
$gc->send_request_unionpay( $acting_opts['send_url_unionpay'], $param_list );
exit();
}
}
/**
* 受注データ登録
* Called by usces_reg_orderdata() and usces_new_orderdata().
* usces_action_reg_orderdata
*
* @param array $args Compact array( $cart, $entry, $order_id, $member_id, $payments, $charging_type, $results ).
*/
public function register_orderdata( $args ) {
extract( $args ); // phpcs:ignore
if ( ! isset( $results['MerchantFree1'] ) ) {
return;
}
$acting_flg = $payments['settlement'];
if ( ! in_array( $acting_flg, $this->pay_method ) ) {
return;
}
if ( ! $entry['order']['total_full_price'] ) {
return;
}
parent::register_orderdata( $args );
if ( ! isset( $results['Amount'] ) ) {
$results['Amount'] = $entry['order']['total_full_price'];
}
$results = apply_filters( 'usces_filter_escott_register_orderdata_history_log', $results, $args );
$this->save_acting_history_log( $results, $order_id . '_' . $results['MerchantFree1'] );
}
/**
* Front scripts.
* wp_print_footer_scripts
*/
public function footer_scripts() {
global $usces;
if ( ! $this->is_validity_acting( 'card' ) ) {
return;
}
parent::footer_scripts();
/* 発送・支払方法ページ */
if ( 'delivery' === $usces->page ) {
$acting_opts = $this->get_acting_settings();
/* リンク型 */
if ( isset( $acting_opts['card_activate'] ) && 'link' === $acting_opts['card_activate'] ) {
wp_enqueue_style( 'jquery-ui-style' );
wp_enqueue_script( 'jquery-ui-dialog' );
wp_enqueue_style( 'jquery-ui-dialog-min-css', includes_url() . 'css/jquery-ui-dialog.min.css' );
wp_register_script( 'usces_cart_escott_link', USCES_FRONT_PLUGIN_URL . '/js/cart_escott_link.js', array( 'jquery' ), USCES_VERSION, true );
$escott_params = array();
$escott_params['card_activate'] = $acting_opts['card_activate'];
$escott_params['message']['agreement'] = $this->consent_message();
$escott_params['message']['agree'] = __( 'Agree', 'usces' );
$escott_params['message']['disagree'] = __( 'Disagree', 'usces' );
wp_localize_script( 'usces_cart_escott_link', 'escott_params', $escott_params );
wp_enqueue_script( 'usces_cart_escott_link' );
}
}
if ( ! usces_is_membersystem_state() || ! usces_is_login() ) {
return;
}
/* クレジットカード情報更新ページ */
if ( isset( $_GET['usces_page'] ) && ( 'member_register_settlement' === filter_input( INPUT_GET, 'usces_page', FILTER_DEFAULT ) || 'member_update_settlement' === filter_input( INPUT_GET, 'usces_page', FILTER_DEFAULT ) ) ) {
// wp_enqueue_script( 'usces_escott_member', USCES_FRONT_PLUGIN_URL . '/js/member_escott.js', array( 'jquery' ), USCES_VERSION, true );
print_google_recaptcha_response( filter_input( INPUT_GET, 'usces_page', FILTER_DEFAULT ), 'member-card-info', 'member_update_settlement' );
}
/* マイページ */
if ( $usces->is_member_page( $_SERVER['REQUEST_URI'] ) ) {
$acting_opts = $this->get_acting_settings();
if ( 'on' === $acting_opts['quickpay'] ) {
wp_enqueue_style( 'jquery-ui-style' );
wp_enqueue_script( 'jquery-ui-dialog' );
wp_enqueue_style( 'jquery-ui-dialog-min-css', includes_url() . 'css/jquery-ui-dialog.min.css' );
wp_register_script( 'usces_member_escott', USCES_FRONT_PLUGIN_URL . '/js/member_escott.js', array( 'jquery' ), USCES_VERSION, true );
$escott_params = array();
$escott_params['sec3d_activate'] = $acting_opts['sec3d_activate'];
$escott_params['message']['agreement'] = $this->consent_message();
$escott_params['message']['agree'] = __( 'Agree', 'usces' );
$escott_params['message']['disagree'] = __( 'Disagree', 'usces' );
$escott_params['update_settlement_url'] = urlencode(
add_query_arg(
array(
'usces_page' => 'member_update_settlement',
're-enter' => 1,
),
USCES_MEMBER_URL
)
);
$escott_params['register_settlement_url'] = urlencode(
add_query_arg(
array(
'usces_page' => 'member_register_settlement',
're-enter' => 1,
),
USCES_MEMBER_URL
)
);
$member = $usces->get_member();
$escott_params['edit_auth'] = ( isset( $member['edit_auth'] ) ) ? $member['edit_auth'] : '';
$escott_params['edit_flag'] = USCES_VERIFY_MEMBERS_EMAIL::$opts['edit_flag'];
wp_localize_script( 'usces_member_escott', 'escott_params', $escott_params );
wp_enqueue_script( 'usces_member_escott' );
}
}
}
/**
* 支払方法説明
* usces_fiter_the_payment_method_explanation
*
* @param string $explanation Explanation of Payment Method.
* @param array $payment Payment data.
* @param string $value Input value.
* @return string
*/
public function set_payment_method_explanation( $explanation, $payment, $value ) {
global $usces;
$quickpay = '';
if ( $this->acting_flg_card === $payment['settlement'] ) {
$acting_opts = $this->get_acting_settings();
if ( 'link' === $acting_opts['card_activate'] ) {
if ( usces_is_login() && 'on' === $acting_opts['quickpay'] ) {
$member = $usces->get_member();
$kaiin_id = $this->get_quick_kaiin_id( $member['ID'] );
$kaiin_pass = $this->get_quick_pass( $member['ID'] );
if ( ! empty( $kaiin_id ) && ! empty( $kaiin_pass ) ) {
$quickpay = '';
} else {
if ( usces_have_regular_order() || usces_have_continue_charge() ) {
$quickpay = '';
} elseif ( 'on' !== $acting_opts['chooseable_quickpay'] ) {
$quickpay = '';
} else {
$quickpay = '';
}
}
} else {
$quickpay = '';
}
}
}
return $quickpay . $explanation;
}
/**
* 利用可能な決済モジュール
* usces_filter_available_payment_method
*
* @param array $payments Payment data.
* @return array
*/
public function set_available_payment_method( $payments ) {
global $usces;
if ( $usces->is_member_page( $_SERVER['REQUEST_URI'] ) ) {
$payment_method = array();
foreach ( (array) $payments as $id => $payment ) {
if ( $this->acting_flg_card === $payment['settlement'] ) {
$payment_method[ $id ] = $payments[ $id ];
break;
}
}
if ( ! empty( $payment_method ) ) {
$payments = $payment_method;
}
}
return $payments;
}
/**
* 支払回数
* usces_filter_delivery_secure_form_howpay
*
* @param string $html HTML.
* @return string
*/
public function delivery_secure_form_howpay( $html ) {
if ( isset( $_GET['usces_page'] ) && ( 'member_update_settlement' === filter_input( INPUT_GET, 'usces_page', FILTER_DEFAULT ) || 'member_register_settlement' === filter_input( INPUT_GET, 'usces_page', FILTER_DEFAULT ) ) ) {
$html = '';
}
return $html;
}
/**
* 内容確認ページ [注文する] ボタン
* usces_filter_confirm_inform
*
* @param string $html Purchase post form.
* @param array $payments Payment data.
* @param string $acting_flg Payment type.
* @param string $rand Welcart transaction key.
* @param string $purchase_disabled Disable purchase button.
* @return string
*/
public function confirm_inform( $html, $payments, $acting_flg, $rand, $purchase_disabled ) {
global $usces;
$html = parent::confirm_inform( $html, $payments, $acting_flg, $rand, $purchase_disabled );
$usces_entries = $usces->cart->get_entry();
if ( ! $usces_entries['order']['total_full_price'] ) {
return $html;
}
if ( $this->acting_flg_unionpay === $acting_flg ) {
$html = '