Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Recent Secpay Problem


Recommended Posts

In the last week or so a clent on mine has started having problems with his Secpay module in OSCommerce. Although he or us have not changed anything on his site for many many months all of a sudden customers are being returned to the site after payment with the message

"There has been an error processing your credit card. Please try again."

saying their card has not been processed when in fact it has. This even resulted in one person paying for his order six times over!

 

Secpay seem unable to offer a reason although it must be something that they have recently changed.

 

This is a version 1 of OS commerce.. secpay module code below

 

Would appreciate any ones help.

 

 

code below

 

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

 osCommerce, Open Source E-Commerce Solutions
 [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url]

 Copyright © 2003 osCommerce

 Released under the GNU General Public License

 Notes:-
 Module uses 'secpay' as the default Digest Key.  This must be changed to a
 valid digest key before going live.

 The Digest key is implemented as database resident (Configuration table) but may be
 hard coded if required.  See notes in the before_process function.

 cb_flds in the hidden 'Options' form field uses the Session Id as default but any other 
 field or combination of fields may be used.

 For details of the digest key and md_flds refer to the SECpay implementation manual 
 at [url="http://www.secpay.com/tech.html"]http://www.secpay.com/tech.html[/url] or their User Manual at [url="http://www.secpay.com/sc_api.html"]http://www.secpay.com/sc_api.html[/url]

*/

 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()) .
						   // cb_flds uses the Session Id as default but any other field or combination of fields may be used
                              tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_flds=' . tep_session_name());

     return $process_button_string;
   }

   function before_process() {
     global $HTTP_GET_VARS;

     if ($HTTP_GET_VARS['code'] == 'A' && !empty($HTTP_GET_VARS['auth_code']) && empty($HTTP_GET_VARS['resp_code']) && !empty($HTTP_GET_VARS['osCsid'])) {
//      Hard code Digest Key here if required.  
//      $DIGEST_PASSWORD = "secpay" ;        
       list($REQUEST_URI, $CHECK_SUM) = split("hash=", $_SERVER['REQUEST_URI']) ; 
       if ($HTTP_GET_VARS['hash'] != MD5($REQUEST_URI.MODULE_PAYMENT_SECPAY_READERS_DIGEST)) {
          tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_GET_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false));
       }


     }
   }

   function after_process() {
     return false;
   }

function get_error() {
global $HTTP_GET_VARS;

if ($HTTP_GET_VARS['code'] == "N") {
$error = "TRANSACTION WAS NOT AUTHORISED. PLEASE TRY ANOTHER CARD.";
} 
elseif ($HTTP_GET_VARS['code'] == "C") {
$error = "There was a communications problem in contacing the bank, please try again.";
}
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())");
     tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Readers Digest', 'MODULE_PAYMENT_SECPAY_READERS_DIGEST', 'secpay', 'Digest Key', '6', '0', 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', 'MODULE_PAYMENT_SECPAY_READERS_DIGEST');
   }
 }
?>

Link to comment
Share on other sites

  • 1 month later...
In the last week or so a clent on mine has started having problems with his Secpay module in OSCommerce. Although he or us have not changed anything on his site for many many months all of a sudden customers are being returned to the site after payment with the message

"There has been an error processing your credit card. Please try again."

saying their card has not been processed when in fact it has. This even resulted in one person paying for his order six times over!

 

Secpay seem unable to offer a reason although it must be something that they have recently changed.

 

This is a version 1 of OS commerce.. secpay module code below

 

Would appreciate any ones help.

code below

 

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

 osCommerce, Open Source E-Commerce Solutions
 [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url]

 Copyright © 2003 osCommerce

 Released under the GNU General Public License

 Notes:-
 Module uses 'secpay' as the default Digest Key.  This must be changed to a
 valid digest key before going live.

 The Digest key is implemented as database resident (Configuration table) but may be
 hard coded if required.  See notes in the before_process function.

 cb_flds in the hidden 'Options' form field uses the Session Id as default but any other 
 field or combination of fields may be used.

 For details of the digest key and md_flds refer to the SECpay implementation manual 
 at [url="http://www.secpay.com/tech.html"]http://www.secpay.com/tech.html[/url] or their User Manual at [url="http://www.secpay.com/sc_api.html"]http://www.secpay.com/sc_api.html[/url]

*/

 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()) .
						   // cb_flds uses the Session Id as default but any other field or combination of fields may be used
                              tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_flds=' . tep_session_name());

     return $process_button_string;
   }

   function before_process() {
     global $HTTP_GET_VARS;

     if ($HTTP_GET_VARS['code'] == 'A' && !empty($HTTP_GET_VARS['auth_code']) && empty($HTTP_GET_VARS['resp_code']) && !empty($HTTP_GET_VARS['osCsid'])) {
//      Hard code Digest Key here if required.  
//      $DIGEST_PASSWORD = "secpay" ;        
       list($REQUEST_URI, $CHECK_SUM) = split("hash=", $_SERVER['REQUEST_URI']) ; 
       if ($HTTP_GET_VARS['hash'] != MD5($REQUEST_URI.MODULE_PAYMENT_SECPAY_READERS_DIGEST)) {
          tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_GET_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false));
       }
     }
   }

   function after_process() {
     return false;
   }

function get_error() {
global $HTTP_GET_VARS;

if ($HTTP_GET_VARS['code'] == "N") {
$error = "TRANSACTION WAS NOT AUTHORISED. PLEASE TRY ANOTHER CARD.";
} 
elseif ($HTTP_GET_VARS['code'] == "C") {
$error = "There was a communications problem in contacing the bank, please try again.";
}
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())");
     tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Readers Digest', 'MODULE_PAYMENT_SECPAY_READERS_DIGEST', 'secpay', 'Digest Key', '6', '0', 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', 'MODULE_PAYMENT_SECPAY_READERS_DIGEST');
   }
 }
?>

 

Hello Terry,

 

I've only just registered on here so forgive me if this seems a little late to reply but I noticed you han't had any responses - are you still having issues?

Thanks

SECPay

 

If you have any queries or need technical assistance our contact details are below.

Email: [email protected]

Tel: 08701 904 146

Link to comment
Share on other sites

I am having issues with this, i am testing with the 4444333322221111 number and visa, always returns with error but i do get the email from secpay saying all is well, please help

 

Hello opsman,

 

Probably best to email me at the support address below as I need to know more about your SECPay account - to begin with your ID and you website URL so I can take a look.

 

A couple of suggestions tho just in case they work...

 

1 - Have you installed the latest module from the contributions section (MD5 version) and if so did you un-install the one that was there before you installed the new one? If not then try that.

 

2 - If you have, have you setup your digest key within SECNet and also on osCommerce? Do they match?

 

If it's neither of the above then best to send me an email.

Thanks

SECPay

 

If you have any queries or need technical assistance our contact details are below.

Email: [email protected]

Tel: 08701 904 146

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.
Note: Your post will require moderator approval before it will be visible.

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...