// includes/module/payment/elv.php <?php class elv { var $code, $title, $description, $enabled; // class constructor function elv() { global $order; $this->code = 'elv'; $this->title = MODULE_PAYMENT_ELV_TEXT_TITLE; $this->description = MODULE_PAYMENT_ELV_TEXT_DESCRIPTION; $this->sort_order = MODULE_PAYMENT_ELV_SORT_ORDER; $this->enabled = ((MODULE_PAYMENT_ELV_STATUS == 'True') ? true : false); //HACK, dass ELV nicht in FR if ( MODULE_PAYMENT_ELV_TEXT_ACCOUNT_FIRSTNAME == 'Prénom') { $this->enabled = false; } if ((int)MODULE_PAYMENT_ELV_ORDER_STATUS_ID > 0) { $this->order_status = MODULE_PAYMENT_ELV_ORDER_STATUS_ID; } if (is_object($order)) $this->update_status(); // MIS $this->form_action_url = 'http://www.xxxxxx.de/cgi-bin/get_elv_data.pl'; // siehe Variablen weiter unten } // class methods function update_status() { global $order; if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_ELV_ZONE > 0) ) { $check_flag = false; $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_ELV_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->billing['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } } function javascript_validation() { $js = ' if (payment_value == "' . $this->code . '") {' . "\n" . ' var firstname = document.checkout_payment.elv_firstname.value;' . "\n" . ' var lastname = document.checkout_payment.elv_lastname.value;' . "\n" . ' var street = document.checkout_payment.elv_street.value;' . "\n" . ' var nr = document.checkout_payment.elv_nr.value;' . "\n" . ' var number = document.checkout_payment.elv_number.value;' . "\n" . ' var bank_code = document.checkout_payment.elv_bank_code.value;' . "\n" . ' var bank = document.checkout_payment.elv_bank.value;' . "\n" . ' var zip = document.checkout_payment.elv_zip.value;' . "\n" . ' var city = document.checkout_payment.elv_city.value;' . "\n" . ' var email = document.checkout_payment.elv_email.value;' . "\n" . ' if (firstname == "" || firstname.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_ELV_TEXT_JS_ELV_FIRSTNAME . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' if (lastname == "" || lastname.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_ELV_TEXT_JS_ELV_LASTNAME . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' if (street == "" || street.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_ELV_TEXT_JS_ELV_STREET . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' if (nr == "" || nr.length < 1) {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_ELV_TEXT_JS_ELV_NR . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' if (number == "" || number.length < 1) {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_ELV_TEXT_JS_ELV_NUMBER . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' if (bank_code == "" || bank_code.length < 1) {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_ELV_TEXT_JS_ELV_BANK_CODE . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' if (bank == "" || bank.length < 1) {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_ELV_TEXT_JS_ELV_BANK . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' if (zip == "" || zip.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_ELV_TEXT_JS_ELV_ZIP . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' if (city == "" || city.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_ELV_TEXT_JS_ELV_CITY . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' if (email == "" || email.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_ELV_TEXT_JS_ELV_EMAIL . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' }' . "\n"; return $js; } function selection() { global $order; $selection = array('id' => $this->code, 'module' => $this->title, 'fields' => array( array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_FIRSTNAME . ':', 'field' => tep_draw_input_field('elv_firstname', $order->billing['firstname'],'size="30"')), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_LASTNAME . ':', 'field' => tep_draw_input_field('elv_lastname', $order->billing['lastname'],'size="30"')), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_STREET . ':', 'field' => tep_draw_input_field('elv_street', $order->billing['street_address'],'size="30"')), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_NR . ':', 'field' => tep_draw_input_field('elv_nr', '', 'size="10"')), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_ZIP . ':', 'field' => tep_draw_input_field('elv_zip', $order->billing['postcode'],'size="10"')), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_CITY . ':', 'field' => tep_draw_input_field('elv_city', $order->billing['city'],'size="30"')), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_COUNTRY . ':', 'field' => tep_get_country_list('country', $order->billing['country_id'])), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_EMAIL . ':', 'field' => tep_draw_input_field('elv_email', $order->customer['email_address'],'size="30"')), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_NUMBER . ':', 'field' => tep_draw_input_field('elv_number',$order->billing['elv_number'],'size="20" maxlength="16"')), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_BANK_CODE . ':', 'field' => tep_draw_input_field('elv_bank_code', $order->billing['elv_bank_code'],'size="9" maxlength="9"')), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_BANK . ':', 'field' => tep_draw_input_field('elv_bank', $order->billing['elv_bank'],'size="30" maxlength="50"')), array('title' => '', 'field' => MODULE_PAYMENT_ELV_TEXT_DESCRIPTOR_TEXT) ) ); return $selection; } function pre_confirmation_check() { return false; } function confirmation() { global $HTTP_POST_VARS; $confirmation = array('title' => $this->title . ': ' . $this->cc_card_type, 'fields' => array(array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_LASTNAME . ':', 'field' => $HTTP_POST_VARS['elv_lastname'] ), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_NUMBER . ':', 'field' => $HTTP_POST_VARS['elv_number']), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_BANK_CODE . ':', 'field' => $HTTP_POST_VARS['elv_bank_code']), array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_BANK . ':', 'field' => $HTTP_POST_VARS['elv_bank']), ) ); if (tep_not_null($HTTP_POST_VARS['elv_checkcode'])) { $confirmation['fields'][] = array('title' => MODULE_PAYMENT_ELV_TEXT_ACCOUNT_CHECKNUMBER, 'field' => $HTTP_POST_VARS['elv_checkcode']); } return $confirmation; } function process_button() { global $HTTP_POST_VARS, $order, $currencies, $currency; switch (MODULE_PAYMENT_ELV_CURRENCY) { case 'EUR'; $trx_currency = 'EUR'; break; } // THE FIELDS PASSED TO THE PAYGATE // Get the Country-ISO $country_name = tep_get_countries($HTTP_POST_VARS['country'], true); // MIS { $process_button_string = tep_draw_hidden_field('message', 'MIS') . tep_draw_hidden_field('mcid', MODULE_PAYMENT_ELV_HDID) . tep_draw_hidden_field('pyid', '1') . tep_draw_hidden_field('acid', MODULE_PAYMENT_ELV_AGBID) . tep_draw_hidden_field('firstname', $HTTP_POST_VARS['elv_firstname']) . tep_draw_hidden_field('lastname', $HTTP_POST_VARS['elv_lastname']) . tep_draw_hidden_field('street', $HTTP_POST_VARS['elv_street']) . tep_draw_hidden_field('nr', $HTTP_POST_VARS['elv_nr']) . tep_draw_hidden_field('zip', $HTTP_POST_VARS['elv_zip']) . tep_draw_hidden_field('city', $HTTP_POST_VARS['elv_city']) . tep_draw_hidden_field('country', $country_name['countries_iso_code_2']) . tep_draw_hidden_field('email', $HTTP_POST_VARS['elv_email']) . tep_draw_hidden_field('tarif', MODULE_PAYMENT_ELV_TARIF) . tep_draw_hidden_field('bankcode', $HTTP_POST_VARS['elv_bank_code']) . tep_draw_hidden_field('bankaccount', $HTTP_POST_VARS['elv_number']) . tep_draw_hidden_field('bankaccount_holder', $HTTP_POST_VARS['elv_firstname'].' '.$HTTP_POST_VARS['elv_lastname']) . tep_draw_hidden_field('currency', $trx_currency) . tep_draw_hidden_field('amount', number_format($order->info['total'] * 100 * $currencies->get_value($trx_currency), 0, '','')) . tep_draw_hidden_field('confirmemail', 'NO') . tep_draw_hidden_field('bank', $HTTP_POST_VARS['elv_bank']) . tep_draw_hidden_field('item_name', STORE_NAME) . tep_draw_hidden_field('redirect_url', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', true)) . tep_draw_hidden_field('silent_error_url', tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code . '&elv_owner=' . urlencode($HTTP_POST_VARS['elv_owner']), 'SSL', true)) . tep_draw_hidden_field('param1', $this->code) . tep_draw_hidden_field('param2', tep_session_id()); } return $process_button_string; } function before_process() { global $HTTP_POST_VARS, $HTTP_GET_VARS, $order; // Pass values to the database entry $order->info['cc_number'] = $HTTP_GET_VARS['bankaccount']; $order->info['cc_owner'] = $HTTP_GET_VARS['surname'] . " " . $HTTP_GET_VARS['name']; // Comment for email $order->info['comments'] = "Payment Transaction-Number: " . $HTTP_GET_VARS['trefnum']; } function after_process() { return false; } function get_error() { global $HTTP_GET_VARS; $error = array('title' => MODULE_PAYMENT_ELV_ERROR_HEADING, 'error' => ((isset($HTTP_GET_VARS['error'])) ? stripslashes(urldecode($HTTP_GET_VARS['error'] . "RC: " . $HTTP_GET_VARS['rc'])) : MODULE_PAYMENT_ELV_ERROR_MESSAGE . " Return Code: " . $HTTP_GET_VARS['rc'])); return $error; } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_ELV_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable debit Payment Module', 'MODULE_PAYMENT_ELV_STATUS', 'True', 'Aktivierung des ELV Deutschland Payment-Moduls?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Your Merchant ID (MCID)', 'MODULE_PAYMENT_ELV_HDID', 'Bsp:12345', 'Ihre Händler ID (MCID)', '6', '2', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Your Tender ID (ACID)', 'MODULE_PAYMENT_ELV_AGBID', 'Bsp:1234', 'Ihre Angebots ID (ACID)', '6', '3', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Your Tarif ID', 'MODULE_PAYMENT_ELV_TARIF', '', 'Ihre Tarif ID', '6', '3', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('The currency to use for debit transactions', 'MODULE_PAYMENT_ELV_CURRENCY', 'EUR', 'Die abzurechnende Währung', '6', '5', 'tep_cfg_select_option(array(\'EUR\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_ELV_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_ELV_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Description on the account balance', 'MODULE_PAYMENT_ELV_TEXT_DESCRIPTOR', 'www.xxxxx.de', 'Verwendungszweck', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_ELV_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_PAYMENT_ELV_STATUS','MODULE_PAYMENT_ELV_HDID', 'MODULE_PAYMENT_ELV_AGBID','MODULE_PAYMENT_ELV_TARIF','MODULE_PAYMENT_ELV_CURRENCY', 'MODULE_PAYMENT_ELV_ZONE', 'MODULE_PAYMENT_ELV_ORDER_STATUS_ID','MODULE_PAYMENT_ELV_SORT_ORDER','MODULE_PAYMENT_ELV_TEXT_DESCRIPTOR'); } } ?>