Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

How to setup Credit Card Gateway


cmxsevenfoldxmc

Recommended Posts

Posted

Hi everyone,

 

Just wondering if anyone else has used this gateway (Elavon), and how can I set mine up (i already have everything setup with them, i just have to know what to get and where to set it).

 

Thanks.

Posted

Maybe it's too much to ask by specifying a company a lot of people aren't familiar with. Therefore I'd be greatful with general help configuring this credit card detail, since all of the material I've found trying to explain this instance does not help at all.

 

Thank you all in advance. :blush:

Posted

As there is no osCommerce Payment Module for this company - which I have certainly never heard of before - you're out of luck.

 

You'd have to employ someone to code a module for you. That's if it is possible to connect to them via a database driven website to process payments. After a quick look on their website I don't see any inidcation that they provide that sort of facility.

 

Vger

Posted

I have instructions and such on what to process for this module, but I'm having some problems with it.

 

I've implemented the module and it shows up when checking out. However, when the form_action_url takes effect, it goes to the external site and stays blank... Like nothing gets processed.

 

Can anyone look at the following and give me an idea of why that is?

 

Here's the new payment page (elavon.php):

<?php
/*
 $Id: elavon.php
*/

 class elavon {
var $code, $title, $description, $enabled;

// class constructor
function elavon() {
  global $order;

  $this->code = 'elavon';
  $this->title = MODULE_PAYMENT_ELAVON_TEXT_TITLE;
  $this->description = MODULE_PAYMENT_ELAVON_TEXT_DESCRIPTION;
  $this->sort_order = MODULE_PAYMENT_ELAVON_SORT_ORDER;
  $this->enabled = ((MODULE_PAYMENT_ELAVON_STATUS == 'True') ? true : false);

  if ((int)MODULE_PAYMENT_ELAVON_ORDER_STATUS_ID > 0) {
	$this->order_status = MODULE_PAYMENT_ELAVON_ORDER_STATUS_ID;
  }

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

  $this->form_action_url = 'https://www.myvirtualmerchant.com/VirtualMerchant/process.do';
}

// class methods
function update_status() {
  global $order;

  if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_ELAVON_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_ELAVON_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() {
  return false;
}

function selection() {
  return array('id' => $this->code,
			   'module' => $this->title);

  return $selection;
}

function pre_confirmation_check() {
  return false;
}

function confirmation() {
  return false;
}

function process_button() {
  global $order, $currencies, $currency;

  if (MODULE_PAYMENT_ELAVON_CURRENCY == 'Selected Currency') {
	$my_currency = $currency;
  } else {
	$my_currency = substr(MODULE_PAYMENT_ELAVON_CURRENCY, 5);
  }
  if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) {
	$my_currency = 'USD';
  }
  $process_button_string = tep_draw_hidden_field('ssl_merchant_id', '*******') .
						   tep_draw_hidden_field('ssl_user_id', '*******') .
						   tep_draw_hidden_field('ssl_amount', number_format(($order->info['total'] - $order->info['shipping_cost']) * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency)));

  return $process_button_string;
}

function before_process() {
  return false;
}

function after_process() {
  return false;
}

function output_error() {
  return false;
}

function check() {
  if (!isset($this->_check)) {
	$check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_ELAVON_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 Elavon Module', 'MODULE_PAYMENT_ELAVON_STATUS', 'True', 'Do you want to accept Elavon Credit Card payments?', '6', '3', '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 ('Merchant ID', 'MODULE_PAYMENT_ELAVON_ID', '0000000000', 'The merchant ID to use for the Elavon Credit Card service', '6', '4', 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 ('Transaction Currency', 'MODULE_PAYMENT_ELAVON_CURRENCY', 'Selected Currency', 'The currency to use for credit card transactions', '6', '6', 'tep_cfg_select_option(array(\'Selected Currency\',\'Only USD\',\'Only CAD\',\'Only EUR\',\'Only GBP\',\'Only JPY\'), ', 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_ELAVON_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_ELAVON_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_ELAVON_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_ELAVON_STATUS', 'MODULE_PAYMENT_ELAVON_ID', 'MODULE_PAYMENT_ELAVON_CURRENCY', 'MODULE_PAYMENT_ELAVON_ZONE', 'MODULE_PAYMENT_ELAVON_ORDER_STATUS_ID', 'MODULE_PAYMENT_ELAVON_SORT_ORDER');
}
 }
?>

 

Here's what the Developer's Guide from Elavon states you need to do in order to process the order to their site:

~~~~~~~~~~~~~~~~~~~~~~~

Virtual Merchant Developer’s Guide

__________________________________

Example 1:

The following HTML code demonstrates the initiation of a minimal transaction, in which Virtual Merchant gathers all of the customer’s billing information:

<form action="https://www.myvirtualmerchant.com/VirtualMerchant/process.do" method="POST">

<input type="hidden" name="ssl_merchant_id" value="my_virtualmerchant_ID">

<input type="hidden" name="ssl_pin" value="my_PIN">

<input type="hidden" name="ssl_amount" value="14.95">

</form>

~~~~~~~~~~~~~~~~~~~~~~~

 

Any idea on what I have to do here?

 

I appreciate all the help I can get.

  • 3 weeks later...
  • 1 month later...
Posted

If you do end up using that $49 module (which I just saw myself while searching for a similar solution) can you tell me if you're happy with it?

 

I set up a store a couple years ago for a client and they're now experiencing problems w/ credit card processing. They use Elavon (actually, I do too) and if that module works, that would be great for me.

Archived

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

×
×
  • Create New...