Jodie Posted June 13, 2005 Posted June 13, 2005 I am a newbie to oscommerce and I am probably doing something stupid BUT...I come up with the expiry date error so I removed the check in option in the script. Now I get Invalid australian bartercard? I have spent hours on it and cannot figure out what I am doing wrong! I have copied the script below I am using, I would really appreciate it if someone out there could help me and have a quick look through it. Thanks so much Jodie <?php /* $Id: cc.php,v 1.53 2003/02/04 09:55:01 project3000 Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ class bartercard { var $code, $title, $description, $enabled; // class constructor function bartercard() { global $order; $this->code = 'bartercard'; $this->title = MODULE_PAYMENT_BARTERCARD_TEXT_TITLE; $this->description = MODULE_PAYMENT_BARTERCARD_TEXT_DESCRIPTION; $this->sort_order = MODULE_PAYMENT_BARTERCARD_SORT_ORDER; $this->enabled = ((MODULE_PAYMENT_BARTERCARD_STATUS == 'True') ? true : false); if ((int)MODULE_PAYMENT_BARTERCARD_ORDER_STATUS_ID > 0) { $this->order_status = MODULE_PAYMENT_BARTERCARD_ORDER_STATUS_ID; } if (is_object($order)) $this->update_status(); } // class methods function update_status() { global $order; if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_BARTERCARD_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_BARTERCARD_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 cc_owner = document.checkout_payment.cc_owner.value;' . "\n" . ' var cc_number = document.checkout_payment.cc_number.value;' . "\n" . ' if (cc_owner == "" || cc_owner.length < ' . BARTERCARD_OWNER_MIN_LENGTH . ') {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_BARTERCARD_TEXT_JS_BARTERCARD_OWNER . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' if (cc_number == "" || cc_number.length < ' . BARTERCARD_NUMBER_MIN_LENGTH . ') {' . "\n" . ' error_message = error_message + "' . MODULE_PAYMENT_BARTERCARD_TEXT_JS_BARTERCARD_NUMBER . '";' . "\n" . ' error = 1;' . "\n" . ' }' . "\n" . ' }' . "\n"; return $js; } function selection() { global $order; for ($i=1; $i<13; $i++) { $expires_month[] = array('id' => sprintf('%02d', $i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000))); } $today = getdate(); for ($i=$today['year']; $i < $today['year']+10; $i++) { $expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i))); } $selection = array('id' => $this->code, 'module' => $this->title, 'fields' => array(array('title' => MODULE_PAYMENT_BARTERCARD_TEXT_CREDIT_CARD_OWNER, 'field' => tep_draw_input_field('cc_owner', $order->billing['firstname'] . ' ' . $order->billing['lastname'])), array('title' => MODULE_PAYMENT_BARTERCARD_TEXT_CREDIT_CARD_NUMBER, 'field' => tep_draw_input_field('cc_number')), array('title' => MODULE_PAYMENT_BARTERCARD_TEXT_CREDIT_CARD_EXPIRES, 'field' => tep_draw_pull_down_menu('cc_expires_month', $expires_month) . ' ' . tep_draw_pull_down_menu('cc_expires_year', $expires_year)))); return $selection; } function pre_confirmation_check() { global $HTTP_POST_VARS; $error = false; if (strlen(str_replace(" ", "", trim($HTTP_POST_VARS['cc_number']))) != 16) $error = "Invalid number of digits"; if (strpos(str_replace(" ", "", trim($HTTP_POST_VARS['cc_number'])), "60091261") !== 0) $error = "Invalid or non-Australian card"; if ($HTTP_POST_VARS['cc_expires_year'] == date("y")) { // check the month if($HTTP_POST_VARS['cc_expires_month'] < date("m")) $error = "BarterCard expiry date has passed."; } else if ($HTTP_POST_VARS['cc_expires_year'] < date("y")) { // not valid at all $error = "BarterCard expiry date has passed"; } if ( $error !== false ) { $payment_error_return = $error; $payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&cc_owner=' . urlencode($HTTP_POST_VARS['cc_owner']) . '&cc_expires_month=' . $HTTP_POST_VARS['cc_expires_month'] . '&cc_expires_year=' . $HTTP_POST_VARS['cc_expires_year']; tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false)); } $this->cc_card_number = $HTTP_POST_VARS['cc_number']; } function confirmation() { global $HTTP_POST_VARS; $confirmation = array('title' => $this->title . ': ' . $this->cc_card_type, 'fields' => array(array('title' => MODULE_PAYMENT_BARTERCARD_TEXT_CREDIT_CARD_OWNER, 'field' => $HTTP_POST_VARS['cc_owner']), array('title' => MODULE_PAYMENT_BARTERCARD_TEXT_CREDIT_CARD_NUMBER, 'field' => substr($this->cc_card_number, 0, 4) . str_repeat('X', (strlen($this->cc_card_number) - 8)) . substr($this->cc_card_number, -4)), array('title' => MODULE_PAYMENT_BARTERCARD_TEXT_CREDIT_CARD_EXPIRES, 'field' => strftime('%B, %Y', mktime(0,0,0,$HTTP_POST_VARS['cc_expires_month'], 1, '20' . $HTTP_POST_VARS['cc_expires_year']))))); return $confirmation; } function process_button() { global $HTTP_POST_VARS; $process_button_string = tep_draw_hidden_field('cc_owner', $HTTP_POST_VARS['cc_owner']) . tep_draw_hidden_field('cc_expires', $HTTP_POST_VARS['cc_expires_month'] . $HTTP_POST_VARS['cc_expires_year']) . tep_draw_hidden_field('cc_type', $this->cc_card_type) . tep_draw_hidden_field('cc_number', $this->cc_card_number); return $process_button_string; } function before_process() { global $HTTP_POST_VARS, $order; if ( (defined('MODULE_PAYMENT_BARTERCARD_EMAIL')) && (tep_validate_email(MODULE_PAYMENT_BARTERCARD_EMAIL)) ) { $len = strlen($HTTP_POST_VARS['cc_number']); $this->cc_middle = substr($HTTP_POST_VARS['cc_number'], 4, ($len-8)); $order->info['cc_number'] = substr($HTTP_POST_VARS['cc_number'], 0, 4) . str_repeat('X', (strlen($HTTP_POST_VARS['cc_number']) - 8)) . substr($HTTP_POST_VARS['cc_number'], -4); } } function after_process() { global $insert_id; if ( (defined('MODULE_PAYMENT_BARTERCARD_EMAIL')) && (tep_validate_email(MODULE_PAYMENT_BARTERCARD_EMAIL)) ) { $message = 'Order #' . $insert_id . "\n\n" . 'Middle: ' . $this->cc_middle . "\n\n"; tep_mail('', MODULE_PAYMENT_BARTERCARD_EMAIL, 'Extra Order Info: #' . $insert_id, $message, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); } } function get_error() { global $HTTP_GET_VARS; $error = array('title' => MODULE_PAYMENT_BARTERCARD_TEXT_ERROR, 'error' => stripslashes(urldecode($HTTP_GET_VARS['error']))); return $error; } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_BARTERCARD_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 BarterCard Module', 'MODULE_PAYMENT_BARTERCARD_STATUS', 'True', 'Do you want to accept Australian BarterCard payments?', '6', '0', '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 ('Split BarterCard E-Mail Address', 'MODULE_PAYMENT_BARTERCARD_EMAIL', '', 'If an e-mail address is entered, the middle digits of the BarterCard number will be sent to the e-mail address (the outside digits are stored in the database with the middle digits censored)', '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_BARTERCARD_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0' , 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_BARTERCARD_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_BARTERCARD_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())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_PAYMENT_BARTERCARD_STATUS', 'MODULE_PAYMENT_BARTERCARD_EMAIL', 'MODULE_PAYMENT_BARTERCARD_ZONE', 'MODULE_PAYMENT_BARTERCARD_ORDER_STATUS_ID', 'MODULE_PAYMENT_BARTERCARD_SORT_ORDER'); } } ?>
Snowman Posted June 13, 2005 Posted June 13, 2005 Jodie it looks like the date and verification class is taken from the CC module, but it hasnt been setup correctly. I will see if i can work up a fixed version in the next few hours.
benwalsh Posted June 13, 2005 Posted June 13, 2005 bartercard thats interesting as i also do some trade. if trying to remove the expiry date one way might not be to change the script, but just make it happy. could you on the form make this a hidden field and set the value?
ssnb Posted February 13, 2009 Posted February 13, 2009 I am keen to get bartercard working on my site, but the module does not seem to work A test order using the new BC payment module does not show the BC number or expiry date in the orders admin page. Has anyone successfully got the bartercard contribution working ok? Thanks Sol
ssnb Posted June 8, 2009 Posted June 8, 2009 I am keen to get bartercard working on my site, but the module does not seem to work A test order using the new BC payment module does not show the BC number or expiry date in the orders admin page. Has anyone successfully got the bartercard contribution working ok? Thanks Sol Did anyone else get this working? Tags: bartercard, bartercard module, bartercard payment, barter card
Recommended Posts
Archived
This topic is now archived and is closed to further replies.