Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Barter card payment option error


Jodie

Recommended Posts

Posted

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');

 

}

 

}

 

?>

Posted

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.

Posted

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?

  • 3 years later...
Posted

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

  • 3 months later...
Posted
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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...