Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

"error processing your credit card" message


quomo

Recommended Posts

Posted

I installed a new module that Im developing for Clickpay (EUROCONEX-Bank of Ireland). Im getting this error message when returning after the transaction to the checkout_process.php page: There has been an error processing your credit card. Please try again. Nevertheless, the info is more than right (maybe carried in the wrong field?) I modified Authorizenet.php to fulfill Euroconex requirements (see euroconex.php underneath)

 

Apart from this, I need to know:

An instruction that can write the Order ID on the form.(see blue text at bottom)

An instruction that can write the Cart ID on the form.(see green text at bottom)

What information need to be posted to checkout_process.php to process the order properly.

 

I have no clue about PHP to be honest. All Im doing is using my common sense. So If you see some crazy piece of code in the following, let me know.

 

 

Here's the code:

<?php

/*

$Id: euroconex.php,v 1.47 2003/02/14 05:51:31 hpdl Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2003 osCommerce

 

Released under the GNU General Public License

*/

 

class euroconex {

var $code, $title, $description, $enabled;

 

// class constructor

function euroconex() {

global $order;

 

$this->code = 'euroconex';

$this->title = MODULE_PAYMENT_EUROCONEX_TEXT_TITLE;

$this->description = MODULE_PAYMENT_EUROCONEX_TEXT_DESCRIPTION;

$this->sort_order = MODULE_PAYMENT_EUROCONEX_SORT_ORDER;

$this->enabled = ((MODULE_PAYMENT_EUROCONEX_STATUS == 'True') ? true : false);

 

if ((int)MODULE_PAYMENT_EUROCONEX_ORDER_STATUS_ID > 0) {

$this->order_status = MODULE_PAYMENT_EUROCONEX_ORDER_STATUS_ID;

}

 

if (is_object($order)) $this->update_status();

 

$this->form_action_url = 'http://testclikpay.euroconex.com/process.asp';

}

 

// class methods

function update_status() {

global $order;

 

if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_EUROCONEX_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_EUROCONEX_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.euroconex_cc_owner.value;' . "n" .

' var cc_number = document.checkout_payment.euroconex_cc_number.value;' . "n" .

' if (cc_owner == "" || cc_owner.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "n" .

' error_message = error_message + "' . MODULE_PAYMENT_EUROCONEX_TEXT_JS_CC_OWNER . '";' . "n" .

' error = 1;' . "n" .

' }' . "n" .

' if (cc_number == "" || cc_number.length < ' . CC_NUMBER_MIN_LENGTH . ') {' . "n" .

' error_message = error_message + "' . MODULE_PAYMENT_EUROCONEX_TEXT_JS_CC_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_EUROCONEX_TEXT_CREDIT_CARD_OWNER,

'field' => tep_draw_input_field('euroconex_cc_owner', $order->billing['firstname'] . ' ' . $order->billing['lastname'])),

array('title' => MODULE_PAYMENT_EUROCONEX_TEXT_CREDIT_CARD_NUMBER,

'field' => tep_draw_input_field('euroconex_cc_number')),

array('title' => MODULE_PAYMENT_EUROCONEX_TEXT_CREDIT_CARD_EXPIRES,

'field' => tep_draw_pull_down_menu('euroconex_cc_expires_month', $expires_month) . ' ' . tep_draw_pull_down_menu('euroconex_cc_expires_year', $expires_year))));

 

return $selection;

}

 

function pre_confirmation_check() {

global $HTTP_POST_VARS;

 

include(DIR_WS_CLASSES . 'cc_validation.php');

 

$cc_validation = new cc_validation();

$result = $cc_validation->validate($HTTP_POST_VARS['euroconex_cc_number'], $HTTP_POST_VARS['euroconex_cc_expires_month'], $HTTP_POST_VARS['euroconex_cc_expires_year']);

$error = '';

switch ($result) {

case -1:

$error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4));

break;

case -2:

case -3:

case -4:

$error = TEXT_CCVAL_ERROR_INVALID_DATE;

break;

case false:

$error = TEXT_CCVAL_ERROR_INVALID_NUMBER;

break;

}

 

if ( ($result == false) || ($result < 1) ) {

$payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&euroconex_cc_owner=' . urlencode($HTTP_POST_VARS['euroconex_cc_owner']) . '&euroconex_cc_expires_month=' . $HTTP_POST_VARS['euroconex_cc_expires_month'] . '&euroconex_cc_expires_year=' . $HTTP_POST_VARS['euroconex_cc_expires_year'];

 

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false));

}

 

$this->cc_card_type = $cc_validation->cc_type;

$this->cc_card_number = $cc_validation->cc_number;

$this->cc_expiry_month = $cc_validation->cc_expiry_month;

$this->cc_expiry_year = $cc_validation->cc_expiry_year;

}

 

function confirmation() {

global $HTTP_POST_VARS;

 

$confirmation = array('title' => $this->title . ': ' . $this->cc_card_type,

'fields' => array(array('title' => MODULE_PAYMENT_EUROCONEX_TEXT_CREDIT_CARD_OWNER,

'field' => $HTTP_POST_VARS['euroconex_cc_owner']),

array('title' => MODULE_PAYMENT_EUROCONEX_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_EUROCONEX_TEXT_CREDIT_CARD_EXPIRES,

'field' => strftime('%B, %Y', mktime(0,0,0,$HTTP_POST_VARS['euroconex_cc_expires_month'], 1, '20' . $HTTP_POST_VARS['euroconex_cc_expires_year'])))));

 

return $confirmation;

}

 

function process_button() {

global $HTTP_SERVER_VARS, $order, $customer_id;

 

$sequence = rand(1, 1000);

$process_button_string = tep_draw_hidden_field('customers_id', $customer_id) .

tep_draw_hidden_field('customers_name', $order->customer['firstname'] . ' ' . $order->customer['lastname']) .

tep_draw_hidden_field('customers_company', $order->customer['company']) .

tep_draw_hidden_field('customers_street_address', $order->customer['street_address']) .

tep_draw_hidden_field('customers_suburb', $order->customer['suburb']) .

tep_draw_hidden_field('customers_city', $order->customer['city']) .

tep_draw_hidden_field('customers_postcode', $order->customer['postcode']) .

tep_draw_hidden_field('customers_state', $order->customer['state']) .

tep_draw_hidden_field('customers_country', $order->customer['country']['title']) .

tep_draw_hidden_field('customers_telephone', $order->customer['telephone']) .

tep_draw_hidden_field('customers_email_address', $order->customer['email_address']) .

tep_draw_hidden_field('customers_address_format_id', $order->customer['format_id']) .

tep_draw_hidden_field('delivery_name', $order->delivery['firstname'] . ' ' . $order->delivery['lastname']) .

tep_draw_hidden_field('delivery_company', $order->delivery['company']) .

tep_draw_hidden_field('delivery_street_address', $order->delivery['street_address']) .

tep_draw_hidden_field('delivery_suburb', $order->delivery['suburb']) .

tep_draw_hidden_field('delivery_city', $order->delivery['city']) .

tep_draw_hidden_field('delivery_postcode', $order->delivery['postcode']) .

tep_draw_hidden_field('delivery_state', $order->delivery['state']) .

tep_draw_hidden_field('delivery_country', $order->delivery['country']['title']) .

tep_draw_hidden_field('delivery_address_format_id', $order->delivery['format_id']) .

tep_draw_hidden_field('billing_name', $order->billing['firstname'] . ' ' . $order->billing['lastname']) .

tep_draw_hidden_field('billing_company', $order->billing['company']) .

tep_draw_hidden_field('billing_street_address', $order->billing['street_address']) .

tep_draw_hidden_field('billing_suburb', $order->billing['suburb']) .

tep_draw_hidden_field('billing_city', $order->billing['city']) .

tep_draw_hidden_field('billing_postcode', $order->billing['postcode']) .

tep_draw_hidden_field('billing_state', $order->billing['state']) .

tep_draw_hidden_field('billing_country', $order->billing['country']['title']) .

tep_draw_hidden_field('billing_address_format_id', $order->billing['format_id']) .

tep_draw_hidden_field('payment_method', $order->info['payment_method']) .

tep_draw_hidden_field('cc_type', $order->info['cc_type']) .

tep_draw_hidden_field('cc_owner', $order->info['cc_owner']) .

tep_draw_hidden_field('euroconex_cc_owner', $HTTP_POST_VARS['euroconex_cc_owner']) .

tep_draw_hidden_field('euroconex_cc_number', $HTTP_POST_VARS['euroconex_cc_number']) .

tep_draw_hidden_field('euroconex_cc_expires_month', $HTTP_POST_VARS['euroconex_cc_expires_month']) .

tep_draw_hidden_field('euroconex_cc_expires_year', $HTTP_POST_VARS['euroconex_cc_expires_year']) .

tep_draw_hidden_field('cc_number', $this->cc_card_number) .

tep_draw_hidden_field('cc_expires', $this->cc_expiry_month . substr($this->cc_expiry_year, -2)) .

tep_draw_hidden_field('orders_status', $order->info['order_status']) .

tep_draw_hidden_field('currency', $order->info['currency']) .

tep_draw_hidden_field('currency_value', $order->info['currency_value']) .

tep_draw_hidden_field('orders_id', $order->info['orders_id']) .

tep_draw_hidden_field('orders_status_id', $order->info['order_status']) .

tep_draw_hidden_field('clikpay_id', MODULE_PAYMENT_EUROCONEX_CLIKPAY_ID) .

tep_draw_hidden_field('card_number', $this->cc_card_number) .

tep_draw_hidden_field('card_exp_date', $this->cc_expiry_month . substr($this->cc_expiry_year, -2)) .

tep_draw_hidden_field('description', MODULE_PAYMENT_EUROCONEX_TEXT_DESCRIPTION_SHOP) .

tep_draw_hidden_field('x_Relay_URL', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', false)) .

tep_draw_hidden_field('cart_id', $this->cartID) .

tep_draw_hidden_field('amount', number_format($order->info['total'], 2)) .

tep_draw_hidden_field('comments', $order->info['comments']) .

tep_draw_hidden_field('x_email_merchant', ((MODULE_PAYMENT_EUROCONEX_EMAIL_MERCHANT == 'True') ? 'TRUE' : 'FALSE'));

 

$process_button_string .= tep_draw_hidden_field(tep_session_name(), tep_session_id());

 

return $process_button_string;

}

 

function before_process() {

global $HTTP_POST_VARS, $order, $customer_id;

 

if ($HTTP_POST_VARS['x_response_code'] == '1') return;

if ($HTTP_POST_VARS['x_response_code'] == '2') {

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(MODULE_PAYMENT_EUROCONEX_TEXT_DECLINED_MESSAGE), 'SSL', true, false));

}

// Code 3 is an error - but anything else is an error too (IMHO)

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(MODULE_PAYMENT_EUROCONEX_TEXT_ERROR_MESSAGE), 'SSL', true, false));

}

 

function after_process() {

return false;

}

 

function get_error() {

global $HTTP_GET_VARS;

 

$error = array('title' => MODULE_PAYMENT_EUROCONEX_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_EUROCONEX_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 Euroconex Module', 'MODULE_PAYMENT_EUROCONEX_STATUS', 'True', 'Do you want to accept Euroconex 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 ('CLIKPAY ID', 'MODULE_PAYMENT_EUROCONEX_CLIKPAY_ID', 'Test', 'Clikpay ID number', '6', '0', 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 ('Merchant Notifications', 'MODULE_PAYMENT_EUROCONEX_EMAIL_MERCHANT', 'True', 'Should EUROCONEX e-mail a receipt to the store owner?', '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, set_function, date_added) values ('Customer Notifications', 'MODULE_PAYMENT_EUROCONEX_EMAIL_CUSTOMER', 'False', 'Should Euroconex e-mail a receipt to the customer?', '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 ('Sort order of display.', 'MODULE_PAYMENT_EUROCONEX_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_EUROCONEX_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_EUROCONEX_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_EUROCONEX_STATUS', 'MODULE_PAYMENT_EUROCONEX_CLIKPAY_ID', 'MODULE_PAYMENT_EUROCONEX_EMAIL_MERCHANT', 'MODULE_PAYMENT_EUROCONEX_EMAIL_CUSTOMER', 'MODULE_PAYMENT_EUROCONEX_ZONE', 'MODULE_PAYMENT_EUROCONEX_ORDER_STATUS_ID', 'MODULE_PAYMENT_EUROCONEX_SORT_ORDER');

}

}

?>

 

Thanks for your help.

Posted

OK, heres the basis of my first contribution to OSCommerce:

A Euroconex.php payment module.

I resolved the problem about Credit Card aproval by eliminating unneccesary URL checks and extra bits of code, remember I created this by modifying Authorizenet.php. It can be improved and it will be. I still would love to know this:

A PHP instruction that can write the Order ID on the form.

A PHP instruction that can write the Cart ID on the form.

The ones I use in the code underneath doesnt work at all [perhaps cause I seriously havent the clue about PHP?]

 

Sometimes I think I talk too much to myself.

 

Payment module for Euroconex-Clikpay-Bank of Ireland

<?php

/*

$Id: euroconex.php,v 1.47 2003/02/14 05:51:31 hpdl Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2003 osCommerce

 

Released under the GNU General Public License

*/

 

class euroconex {

var $code, $title, $description, $enabled;

 

// class constructor

function euroconex() {

global $order;

 

$this->code = 'euroconex';

$this->title = MODULE_PAYMENT_EUROCONEX_TEXT_TITLE;

$this->description = MODULE_PAYMENT_EUROCONEX_TEXT_DESCRIPTION;

$this->sort_order = MODULE_PAYMENT_EUROCONEX_SORT_ORDER;

$this->enabled = ((MODULE_PAYMENT_EUROCONEX_STATUS == 'True') ? true : false);

 

if ((int)MODULE_PAYMENT_EUROCONEX_ORDER_STATUS_ID > 0) {

$this->order_status = MODULE_PAYMENT_EUROCONEX_ORDER_STATUS_ID;

}

 

if (is_object($order)) $this->update_status();

 

$this->form_action_url = 'http://testclikpay.euroconex.com/process.asp';

}

 

// class methods

function update_status() {

global $order;

 

if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_EUROCONEX_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_EUROCONEX_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.euroconex_cc_owner.value;' . "n" .

' var cc_number = document.checkout_payment.euroconex_cc_number.value;' . "n" .

' if (cc_owner == "" || cc_owner.length < ' . CC_OWNER_MIN_LENGTH . ') {' . "n" .

' error_message = error_message + "' . MODULE_PAYMENT_EUROCONEX_TEXT_JS_CC_OWNER . '";' . "n" .

' error = 1;' . "n" .

' }' . "n" .

' if (cc_number == "" || cc_number.length < ' . CC_NUMBER_MIN_LENGTH . ') {' . "n" .

' error_message = error_message + "' . MODULE_PAYMENT_EUROCONEX_TEXT_JS_CC_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_EUROCONEX_TEXT_CREDIT_CARD_OWNER,

'field' => tep_draw_input_field('euroconex_cc_owner', $order->billing['firstname'] . ' ' . $order->billing['lastname'])),

array('title' => MODULE_PAYMENT_EUROCONEX_TEXT_CREDIT_CARD_NUMBER,

'field' => tep_draw_input_field('euroconex_cc_number')),

array('title' => MODULE_PAYMENT_EUROCONEX_TEXT_CREDIT_CARD_EXPIRES,

'field' => tep_draw_pull_down_menu('euroconex_cc_expires_month', $expires_month) . ' ' . tep_draw_pull_down_menu('euroconex_cc_expires_year', $expires_year))));

 

return $selection;

}

 

function pre_confirmation_check() {

global $HTTP_POST_VARS;

 

include(DIR_WS_CLASSES . 'cc_validation.php');

 

$cc_validation = new cc_validation();

$result = $cc_validation->validate($HTTP_POST_VARS['euroconex_cc_number'], $HTTP_POST_VARS['euroconex_cc_expires_month'], $HTTP_POST_VARS['euroconex_cc_expires_year']);

$error = '';

switch ($result) {

case -1:

$error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4));

break;

case -2:

case -3:

case -4:

$error = TEXT_CCVAL_ERROR_INVALID_DATE;

break;

case false:

$error = TEXT_CCVAL_ERROR_INVALID_NUMBER;

break;

}

 

if ( ($result == false) || ($result < 1) ) {

$payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&euroconex_cc_owner=' . urlencode($HTTP_POST_VARS['euroconex_cc_owner']) . '&euroconex_cc_expires_month=' . $HTTP_POST_VARS['euroconex_cc_expires_month'] . '&euroconex_cc_expires_year=' . $HTTP_POST_VARS['euroconex_cc_expires_year'];

 

tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false));

}

 

$this->cc_card_type = $cc_validation->cc_type;

$this->cc_card_number = $cc_validation->cc_number;

$this->cc_expiry_month = $cc_validation->cc_expiry_month;

$this->cc_expiry_year = $cc_validation->cc_expiry_year;

}

 

function confirmation() {

global $HTTP_POST_VARS;

 

$confirmation = array('title' => $this->title . ': ' . $this->cc_card_type,

'fields' => array(array('title' => MODULE_PAYMENT_EUROCONEX_TEXT_CREDIT_CARD_OWNER,

'field' => $HTTP_POST_VARS['euroconex_cc_owner']),

array('title' => MODULE_PAYMENT_EUROCONEX_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_EUROCONEX_TEXT_CREDIT_CARD_EXPIRES,

'field' => strftime('%B, %Y', mktime(0,0,0,$HTTP_POST_VARS['euroconex_cc_expires_month'], 1, '20' . $HTTP_POST_VARS['euroconex_cc_expires_year'])))));

 

return $confirmation;

}

 

function process_button() {

global $HTTP_SERVER_VARS, $order, $customer_id;

 

$sequence = rand(1, 1000);

$process_button_string = tep_draw_hidden_field('customers_id', $customer_id) .

tep_draw_hidden_field('customers_name', $order->customer['firstname'] . ' ' . $order->customer['lastname']) .

tep_draw_hidden_field('customers_company', $order->customer['company']) .

tep_draw_hidden_field('customers_street_address', $order->customer['street_address']) .

tep_draw_hidden_field('customers_suburb', $order->customer['suburb']) .

tep_draw_hidden_field('customers_city', $order->customer['city']) .

tep_draw_hidden_field('customers_postcode', $order->customer['postcode']) .

tep_draw_hidden_field('customers_state', $order->customer['state']) .

tep_draw_hidden_field('customers_country', $order->customer['country']['title']) .

tep_draw_hidden_field('customers_telephone', $order->customer['telephone']) .

tep_draw_hidden_field('customers_email_address', $order->customer['email_address']) .

tep_draw_hidden_field('customers_address_format_id', $order->customer['format_id']) .

tep_draw_hidden_field('delivery_name', $order->delivery['firstname'] . ' ' . $order->delivery['lastname']) .

tep_draw_hidden_field('delivery_company', $order->delivery['company']) .

tep_draw_hidden_field('delivery_street_address', $order->delivery['street_address']) .

tep_draw_hidden_field('delivery_suburb', $order->delivery['suburb']) .

tep_draw_hidden_field('delivery_city', $order->delivery['city']) .

tep_draw_hidden_field('delivery_postcode', $order->delivery['postcode']) .

tep_draw_hidden_field('delivery_state', $order->delivery['state']) .

tep_draw_hidden_field('delivery_country', $order->delivery['country']['title']) .

tep_draw_hidden_field('delivery_address_format_id', $order->delivery['format_id']) .

tep_draw_hidden_field('billing_name', $order->billing['firstname'] . ' ' . $order->billing['lastname']) .

tep_draw_hidden_field('billing_company', $order->billing['company']) .

tep_draw_hidden_field('billing_street_address', $order->billing['street_address']) .

tep_draw_hidden_field('billing_suburb', $order->billing['suburb']) .

tep_draw_hidden_field('billing_city', $order->billing['city']) .

tep_draw_hidden_field('billing_postcode', $order->billing['postcode']) .

tep_draw_hidden_field('billing_state', $order->billing['state']) .

tep_draw_hidden_field('billing_country', $order->billing['country']['title']) .

tep_draw_hidden_field('billing_address_format_id', $order->billing['format_id']) .

tep_draw_hidden_field('payment_method', $order->info['payment_method']) .

tep_draw_hidden_field('cc_type', $order->info['cc_type']) .

tep_draw_hidden_field('cc_owner', $order->info['cc_owner']) .

tep_draw_hidden_field('euroconex_cc_owner', $HTTP_POST_VARS['euroconex_cc_owner']) .

tep_draw_hidden_field('euroconex_cc_number', $HTTP_POST_VARS['euroconex_cc_number']) .

tep_draw_hidden_field('euroconex_cc_expires_month', $HTTP_POST_VARS['euroconex_cc_expires_month']) .

tep_draw_hidden_field('euroconex_cc_expires_year', $HTTP_POST_VARS['euroconex_cc_expires_year']) .

tep_draw_hidden_field('cc_number', $this->cc_card_number) .

tep_draw_hidden_field('cc_expires', $this->cc_expiry_month . substr($this->cc_expiry_year, -2)) .

tep_draw_hidden_field('orders_status', $order->info['order_status']) .

tep_draw_hidden_field('currency', $order->info['currency']) .

tep_draw_hidden_field('currency_value', $order->info['currency_value']) .

tep_draw_hidden_field('orders_id', $order->info['orders_id']) .

tep_draw_hidden_field('orders_status_id', $order->info['order_status']) .

tep_draw_hidden_field('clikpay_id', MODULE_PAYMENT_EUROCONEX_CLIKPAY_ID) .

tep_draw_hidden_field('card_number', $this->cc_card_number) .

tep_draw_hidden_field('card_exp_date', $this->cc_expiry_month . substr($this->cc_expiry_year, -2)) .

tep_draw_hidden_field('description', MODULE_PAYMENT_EUROCONEX_TEXT_DESCRIPTION_SHOP) .

tep_draw_hidden_field('x_Relay_URL', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', false)) .

tep_draw_hidden_field('cart_id', $this->cartID) .

tep_draw_hidden_field('amount', number_format($order->info['total'], 2)) .

tep_draw_hidden_field('comments', $order->info['comments']) .

tep_draw_hidden_field('x_email_merchant', ((MODULE_PAYMENT_EUROCONEX_EMAIL_MERCHANT == 'True') ? 'TRUE' : 'FALSE'));

 

$process_button_string .= tep_draw_hidden_field(tep_session_name(), tep_session_id());

 

return $process_button_string;

}

 

function before_process() {

global $HTTP_POST_VARS, $order;

 

if ( (defined('MODULE_PAYMENT_CC_EMAIL')) && (tep_validate_email(MODULE_PAYMENT_CC_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_CC_EMAIL')) && (tep_validate_email(MODULE_PAYMENT_CC_EMAIL)) ) {

$message = 'Order #' . $insert_id . "nn" . 'Middle: ' . $this->cc_middle . "nn";

 

tep_mail('', MODULE_PAYMENT_CC_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_EUROCONEX_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_EUROCONEX_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 Euroconex Module', 'MODULE_PAYMENT_EUROCONEX_STATUS', 'True', 'Do you want to accept Euroconex 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 ('CLIKPAY ID', 'MODULE_PAYMENT_EUROCONEX_CLIKPAY_ID', 'Test', 'Clikpay ID number', '6', '0', 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 ('Merchant Notifications', 'MODULE_PAYMENT_EUROCONEX_EMAIL_MERCHANT', 'True', 'Should EUROCONEX e-mail a receipt to the store owner?', '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, set_function, date_added) values ('Customer Notifications', 'MODULE_PAYMENT_EUROCONEX_EMAIL_CUSTOMER', 'False', 'Should Euroconex e-mail a receipt to the customer?', '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 ('Sort order of display.', 'MODULE_PAYMENT_EUROCONEX_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_EUROCONEX_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_EUROCONEX_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_EUROCONEX_STATUS', 'MODULE_PAYMENT_EUROCONEX_CLIKPAY_ID', 'MODULE_PAYMENT_EUROCONEX_EMAIL_MERCHANT', 'MODULE_PAYMENT_EUROCONEX_EMAIL_CUSTOMER', 'MODULE_PAYMENT_EUROCONEX_ZONE', 'MODULE_PAYMENT_EUROCONEX_ORDER_STATUS_ID', 'MODULE_PAYMENT_EUROCONEX_SORT_ORDER');

}

}

?>

Archived

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

×
×
  • Create New...