Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

PayPoint


Megalithic1

Recommended Posts

Ok, I've been working on getting paypoint to work, I have been told that PayPoint used to be SecPay, the problem is it isn't anymore, the call URL is not the same and the tags needed are totally different. I have been having all kinds of issues getting this to function and still have problems (the site takes the money but doesn't notify who it came from)

 

Anyway here is the important information from the paypoint.net Site

 

Field Type(Size) Required? Notes

intInstID int(6) Yes The unique identifier for the MCPE Fast Track installation that will process

this payment.

strCartID char(192) Yes Your own unique identifier for this purchase, to identify the purchase at

your end.

intAccountID int(6) The MCPE unique identifier for the account to receive funds for this

purchase. If this field is omitted, or is invalid, a decision is made based on

the currency specified in the strCurrency field and the value of the

intTestMode field (if included).

strDesc char(192) Yes Descriptive text for this purchase.

fltAmount float(8,3) Yes A decimal value representing the transaction amount in the currency

specified in the strCurrency field, using a point (.) as the separator. Include

no other separators, or non-numeric characters.

fltSchAmount float(8,3) For scheduled payments based upon this transaction, the amount associated

with each scheduled payment, in the currency specified in the strCurrency

field, formatted as for the fltAmount field.

strSchPeriod char(4) For scheduled payments based upon this transaction, the interval between

payments, given as XY where X is a number (1-999) and Y is “D” for days,

“W” for weeks or “M” for months.

intRecurs Int(1) For scheduled payments, indicates if scheduled payments should recur.

Values: 0=no, 1=yes.

strCurrency char(3) Yes The 3-letter ISO code for the currency in which this payment is to be made.

intAuthMode int(1) A value to indicate the type of authorisation to use. If this field is omitted,

auth with capture is assumed. Values: 0=equivalent to field omitted, 1=auth

with capture, 2=pre-auth.

intTestMode int(1) If included, indicates a test purchase. A VISA card with card number

1234123412341234 should be used on the payment page. Values:

0=equivalent to field omitted (payment is live), 1=all payments are

successful, 2=all payments fail. Banks are not involved in test payments.

intTimeout int(2) A value indicating the session timeout in minutes. Values will be capped at

60 minutes.

datFulfillment char(10) As

Required

A date the order will be fulfilled, in the format DD/MM/YYYY. May be

required as advised for Merchants typically selling travel or tickets.

strCardHolder char(20) The name of the card holder, as it appears on the card.

strAddress char(255) The purchaser’s street address.

strCity char(40) The purchaser’s town/city

strState char(40) The purchaser’s county/state

strPostcode char(15) The purchaser’s postcode

strCountry char(2) The 2-letter ISO code for the purchaser’s country.

strTel char(50) The purchaser’s telephone number.

strFax char(50) The purchaser’s fax number.

Field Type(

 

this is the default secpay module

 

<?php
/*
 $Id: secpay.php 1739 2007-12-20 00:52:16Z hpdl $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

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

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

  $this->code = 'secpay';
  $this->title = MODULE_PAYMENT_SECPAY_TEXT_TITLE;
  $this->description = MODULE_PAYMENT_SECPAY_TEXT_DESCRIPTION;
  $this->sort_order = MODULE_PAYMENT_SECPAY_SORT_ORDER;
  $this->enabled = ((MODULE_PAYMENT_SECPAY_STATUS == 'True') ? true : false);

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

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

  $this->form_action_url = 'https://www.secpay.com/java-bin/ValCard';
}

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

  if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_SECPAY_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_SECPAY_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);
}

function pre_confirmation_check() {
  return false;
}

function confirmation() {
  return false;
}

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

  switch (MODULE_PAYMENT_SECPAY_CURRENCY) {
	case 'Default Currency':
	  $sec_currency = DEFAULT_CURRENCY;
	  break;
	case 'Any Currency':
	default:
	  $sec_currency = $currency;
	  break;
  }

  switch (MODULE_PAYMENT_SECPAY_TEST_STATUS) {
	case 'Always Fail':
	  $test_status = 'false';
	  break;
	case 'Production':
	  $test_status = 'live';
	  break;
	case 'Always Successful':
	default:
	  $test_status = 'true';
	  break;
  }

  $process_button_string = tep_draw_hidden_field('merchant', MODULE_PAYMENT_SECPAY_MERCHANT_ID) .
						   tep_draw_hidden_field('trans_id', STORE_NAME . date('Ymdhis')) .
						   tep_draw_hidden_field('amount', number_format($order->info['total'] * $currencies->get_value($sec_currency), $currencies->currencies[$sec_currency]['decimal_places'], '.', '')) .
						   tep_draw_hidden_field('bill_name', $order->billing['firstname'] . ' ' . $order->billing['lastname']) .
						   tep_draw_hidden_field('bill_addr_1', $order->billing['street_address']) .
						   tep_draw_hidden_field('bill_addr_2', $order->billing['suburb']) .
						   tep_draw_hidden_field('bill_city', $order->billing['city']) .
						   tep_draw_hidden_field('bill_state', $order->billing['state']) .
						   tep_draw_hidden_field('bill_post_code', $order->billing['postcode']) .
						   tep_draw_hidden_field('bill_country', $order->billing['country']['title']) .
						   tep_draw_hidden_field('bill_tel', $order->customer['telephone']) .
						   tep_draw_hidden_field('bill_email', $order->customer['email_address']) .
						   tep_draw_hidden_field('ship_name', $order->delivery['firstname'] . ' ' . $order->delivery['lastname']) .
						   tep_draw_hidden_field('ship_addr_1', $order->delivery['street_address']) .
						   tep_draw_hidden_field('ship_addr_2', $order->delivery['suburb']) .
						   tep_draw_hidden_field('ship_city', $order->delivery['city']) .
						   tep_draw_hidden_field('ship_state', $order->delivery['state']) .
						   tep_draw_hidden_field('ship_post_code', $order->delivery['postcode']) .
						   tep_draw_hidden_field('ship_country', $order->delivery['country']['title']) .
						   tep_draw_hidden_field('currency', $sec_currency) .
						   tep_draw_hidden_field('callback', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', false) . ';' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'SSL', false)) .
						   tep_draw_hidden_field(tep_session_name(), tep_session_id()) .
						   tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_post=true,cb_flds=' . tep_session_name());

  return $process_button_string;
}

function before_process() {
  global $HTTP_POST_VARS;

  if ($HTTP_POST_VARS['valid'] == 'true') {
	if ($remote_host = getenv('REMOTE_HOST')) {
	  if ($remote_host != 'secpay.com') {
		$remote_host = gethostbyaddr($remote_host);
	  }
	  if ($remote_host != 'secpay.com') {
		tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_POST_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false));
	  }
	} else {
	  tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_POST_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false));
	}
  }
}

function after_process() {
  return false;
}

function get_error() {
  global $HTTP_GET_VARS;

  if (isset($HTTP_GET_VARS['message']) && (strlen($HTTP_GET_VARS['message']) > 0)) {
	$error = stripslashes(urldecode($HTTP_GET_VARS['message']));
  } else {
	$error = MODULE_PAYMENT_SECPAY_TEXT_ERROR_MESSAGE;
  }

  return array('title' => MODULE_PAYMENT_SECPAY_TEXT_ERROR,
			   'error' => $error);
}

function check() {
  if (!isset($this->_check)) {
	$check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_SECPAY_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 SECpay Module', 'MODULE_PAYMENT_SECPAY_STATUS', 'True', 'Do you want to accept SECPay payments?', '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 ('Merchant ID', 'MODULE_PAYMENT_SECPAY_MERCHANT_ID', 'secpay', 'Merchant ID to use for the SECPay service', '6', '2', 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_SECPAY_CURRENCY', 'Any Currency', 'The currency to use for credit card transactions', '6', '3', 'tep_cfg_select_option(array(\'Any Currency\', \'Default Currency\'), ', 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 Mode', 'MODULE_PAYMENT_SECPAY_TEST_STATUS', 'Always Successful', 'Transaction mode to use for the SECPay service', '6', '4', 'tep_cfg_select_option(array(\'Always Successful\', \'Always Fail\', \'Production\'), ', 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_SECPAY_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_SECPAY_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_SECPAY_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_SECPAY_STATUS', 'MODULE_PAYMENT_SECPAY_MERCHANT_ID', 'MODULE_PAYMENT_SECPAY_CURRENCY', 'MODULE_PAYMENT_SECPAY_TEST_STATUS', 'MODULE_PAYMENT_SECPAY_ZONE', 'MODULE_PAYMENT_SECPAY_ORDER_STATUS_ID', 'MODULE_PAYMENT_SECPAY_SORT_ORDER');
}
 }
?>

 

as you can see this is now not even remotely like secpay and no community add-ons are available to address this (hell someones done an MD5 version which wont work with the new site either :s

 

here is some modifications i have made to the $process_button_string to address these issues with the new site

 

	  $process_button_string = tep_draw_hidden_field('intInstID', MODULE_PAYMENT_SECPAY_MERCHANT_ID) .
						   tep_draw_hidden_field('strCartID', STORE_NAME . date('Ymdhis')) .
						   tep_draw_hidden_field('fltAmount', number_format($order->info['total'] * $currencies->get_value($sec_currency), $currencies->currencies[$sec_currency]['decimal_places'], '.', '')) .
						   tep_draw_hidden_field('strCustomer', $order->billing['firstname'] . ' ' . $order->billing['lastname']) .
						   tep_draw_hidden_field('strDesc', STORE_NAME) .
						   tep_draw_hidden_field('strAddress', $order->billing['street_address'] . ' ' . $order->billing['suburb']) .
						   tep_draw_hidden_field('bill_city', $order->billing['city']) .
						   tep_draw_hidden_field('bill_state', $order->billing['state']) .
						   tep_draw_hidden_field('strPostcode', $order->billing['postcode']) .
						   tep_draw_hidden_field('strCountry', $order->billing['country']['title']) .
						   tep_draw_hidden_field('strTel', $order->customer['telephone']) .
						   tep_draw_hidden_field('strEmail', $order->customer['email_address']) .
						   tep_draw_hidden_field('ship_name', $order->delivery['firstname'] . ' ' . $order->delivery['lastname']) .
						   tep_draw_hidden_field('ship_addr_1', $order->delivery['street_address']) .
						   tep_draw_hidden_field('ship_addr_2', $order->delivery['suburb']) .
						   tep_draw_hidden_field('ship_city', $order->delivery['city']) .
						   tep_draw_hidden_field('ship_state', $order->delivery['state']) .
						   tep_draw_hidden_field('ship_post_code', $order->delivery['postcode']) .
						   tep_draw_hidden_field('ship_country', $order->delivery['country']['title']) .
						   tep_draw_hidden_field('strCurrency', $sec_currency) .
						   tep_draw_hidden_field('callback', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', false) . ';' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'SSL', false)) .
						   tep_draw_hidden_field(tep_session_name(), tep_session_id()) .
						   tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_flds=' . tep_session_name()) .
				 tep_draw_hidden_field('digest', $digest );
  return $process_button_string;
}

I have the module in always succeed mode and the paypoint sites parser tells me that the country code is more than 2 characters long! not sure how to get that info into the string?

 

Anyone got this one licked yet?

Link to comment
Share on other sites

ok fixed it but still have issues regarding the transaction mode.

 

The paypoint documentation calls for the following:-

 

0=production

1=always successfull

2=always fail

 

i have altered the secpay.php to do this as follows

 

	  switch (MODULE_PAYMENT_SECPAY_TEST_STATUS) {
	case 'Always Fail':
	  $test_status = '2';
	  break;
	case 'Production':
	  $test_status = '0';
	  break;
	case 'Always Successful':
	default:
	  $test_status = '1';
	  break;
  }

 

and the line (about 123)

 

changed from

 

							   tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_post=true,cb_flds=' . tep_session_name());

 

to

 

							   tep_draw_hidden_field('options', 'intTestMode=' . $test_status . ',dups=false,cb_flds=' . tep_session_name()) .
				 tep_draw_hidden_field('digest', $digest );

so as the correct tag is now used. The module calls the routine but it doesn't enter the test mode! what am i missing here?

Link to comment
Share on other sites

Hi Craig

 

I'm really sorry that you're having problems integrating your payment gateway.

 

If you haven't already, please speak to one of our technical support team and they will be more than happy to talk you through it.

http://www.paypoint.net/contact/

 

 

Best wishes

Rory Dixon at PayPoint.net

 

 

 

 

ok fixed it but still have issues regarding the transaction mode.

 

The paypoint documentation calls for the following:-

 

0=production

1=always successfull

2=always fail

 

i have altered the secpay.php to do this as follows

 

	  switch (MODULE_PAYMENT_SECPAY_TEST_STATUS) {
	case 'Always Fail':
	  $test_status = '2';
	  break;
	case 'Production':
	  $test_status = '0';
	  break;
	case 'Always Successful':
	default:
	  $test_status = '1';
	  break;
  }

 

and the line (about 123)

 

changed from

 

							   tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_post=true,cb_flds=' . tep_session_name());

 

to

 

							   tep_draw_hidden_field('options', 'intTestMode=' . $test_status . ',dups=false,cb_flds=' . tep_session_name()) .
				 tep_draw_hidden_field('digest', $digest );

so as the correct tag is now used. The module calls the routine but it doesn't enter the test mode! what am i missing here?

Link to comment
Share on other sites

  • 2 weeks later...

we use secpay, we dont bother with the digest key, this is the internals of our secpay.php:

 

You may notice i have commented out the error checking as it was blocking legit cards, we just simply check secpay and if its a fail, the customers recives a call, and we put it through our inhouse card machine instead. On another note though when we shifted servers we had a problem, which im pretty sure was the same as yours until we entered within the admin of the shop -jredir after your merchant ID so it looks like this: yourmerchantid-jredir

 

 

<?php
/*
 $Id: secpay.php,v 1.31 2003/01/29 19:57:15 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

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

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

  $this->code = 'secpay';
  $this->title = MODULE_PAYMENT_SECPAY_TEXT_TITLE;
  $this->description = MODULE_PAYMENT_SECPAY_TEXT_DESCRIPTION;
  $this->sort_order = MODULE_PAYMENT_SECPAY_SORT_ORDER;
  $this->enabled = ((MODULE_PAYMENT_SECPAY_STATUS == 'True') ? true : false);

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

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

  $this->form_action_url = 'https://www.secpay.com/java-bin/ValCard';
}

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

  if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_SECPAY_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_SECPAY_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);
}

function pre_confirmation_check() {
  return false;
}

function confirmation() {
  return false;
}

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

  switch (MODULE_PAYMENT_SECPAY_CURRENCY) {
	case 'Default Currency':
	  $sec_currency = DEFAULT_CURRENCY;
	  break;
	case 'Any Currency':
	default:
	  $sec_currency = $currency;
	  break;
  }

  switch (MODULE_PAYMENT_SECPAY_TEST_STATUS) {
	case 'Always Fail':
	  $test_status = 'false';
	  break;
	case 'Production':
	  $test_status = 'live';
	  break;
	case 'Always Successful':
	default:
	  $test_status = 'true';
	  break;
  }

  $process_button_string = tep_draw_hidden_field('merchant', MODULE_PAYMENT_SECPAY_MERCHANT_ID) .
						   tep_draw_hidden_field('trans_id', STORE_NAME . date('Ymdhis')) .
						   tep_draw_hidden_field('amount', number_format($order->info['total'] * $currencies->get_value($sec_currency), $currencies->currencies[$sec_currency]['decimal_places'], '.', '')) .
						   tep_draw_hidden_field('bill_name', $order->billing['firstname'] . ' ' . $order->billing['lastname']) .
						   tep_draw_hidden_field('bill_addr_1', $order->billing['street_address']) .
						   tep_draw_hidden_field('bill_addr_2', $order->billing['suburb']) .
						   tep_draw_hidden_field('bill_city', $order->billing['city']) .
						   tep_draw_hidden_field('bill_state', $order->billing['state']) .
						   tep_draw_hidden_field('bill_post_code', $order->billing['postcode']) .
						   tep_draw_hidden_field('bill_country', $order->billing['country']['title']) .
						   tep_draw_hidden_field('bill_tel', $order->customer['telephone']) .
						   tep_draw_hidden_field('bill_email', $order->customer['email_address']) .
						   tep_draw_hidden_field('ship_name', $order->delivery['firstname'] . ' ' . $order->delivery['lastname']) .
						   tep_draw_hidden_field('ship_addr_1', $order->delivery['street_address']) .
						   tep_draw_hidden_field('ship_addr_2', $order->delivery['suburb']) .
						   tep_draw_hidden_field('ship_city', $order->delivery['city']) .
						   tep_draw_hidden_field('ship_state', $order->delivery['state']) .
						   tep_draw_hidden_field('ship_post_code', $order->delivery['postcode']) .
						   tep_draw_hidden_field('ship_country', $order->delivery['country']['title']) .
						   tep_draw_hidden_field('currency', $sec_currency) .
						   tep_draw_hidden_field('callback', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', false)) .
						   //tep_draw_hidden_field('callback', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', false) . ';' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'SSL', false)) .
						   tep_draw_hidden_field(tep_session_name(), tep_session_id()) .
						   tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_post=true,cb_flds=' . tep_session_name());

  return $process_button_string;
}

function before_process() {
  global $HTTP_POST_VARS;

  if ($HTTP_POST_VARS['valid'] == 'true') {
	if ($remote_host = getenv('REMOTE_HOST')) {
	  if ($remote_host != 'secpay.com') {
		$remote_host = gethostbyaddr($remote_host);
	  }
	  if ($remote_host != 'secpay.com') {
		//tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_POST_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false));
	  }
	} else {
	  //tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_POST_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false));
	}
  }
}

function after_process() {
  return false;
}

function get_error() {
  global $HTTP_GET_VARS;

  if (isset($HTTP_GET_VARS['message']) && (strlen($HTTP_GET_VARS['message']) > 0)) {
	$error = stripslashes(urldecode($HTTP_GET_VARS['message']));
  } else {
	$error = MODULE_PAYMENT_SECPAY_TEXT_ERROR_MESSAGE;
  }

  return array('title' => MODULE_PAYMENT_SECPAY_TEXT_ERROR,
			   'error' => $error);
}

function check() {
  if (!isset($this->_check)) {
	$check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_SECPAY_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 SECpay Module', 'MODULE_PAYMENT_SECPAY_STATUS', 'True', 'Do you want to accept SECPay payments?', '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 ('Merchant ID', 'MODULE_PAYMENT_SECPAY_MERCHANT_ID', 'secpay', 'Merchant ID to use for the SECPay service', '6', '2', 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_SECPAY_CURRENCY', 'Any Currency', 'The currency to use for credit card transactions', '6', '3', 'tep_cfg_select_option(array(\'Any Currency\', \'Default Currency\'), ', 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 Mode', 'MODULE_PAYMENT_SECPAY_TEST_STATUS', 'Always Successful', 'Transaction mode to use for the SECPay service', '6', '4', 'tep_cfg_select_option(array(\'Always Successful\', \'Always Fail\', \'Production\'), ', 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_SECPAY_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_SECPAY_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_SECPAY_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_SECPAY_STATUS', 'MODULE_PAYMENT_SECPAY_MERCHANT_ID', 'MODULE_PAYMENT_SECPAY_CURRENCY', 'MODULE_PAYMENT_SECPAY_TEST_STATUS', 'MODULE_PAYMENT_SECPAY_ZONE', 'MODULE_PAYMENT_SECPAY_ORDER_STATUS_ID', 'MODULE_PAYMENT_SECPAY_SORT_ORDER');
}
 }
?>

Edited by chrish123
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...