Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Virtual Merchant - Elavon, ViaKlix, Nova Payment Module Support Forum


zelf

Recommended Posts

Hi ,

I get this error "Credit Card Error: The card entered is being declined. This most often is due to incorrectly entered information. Please try re-entering your information"

 

I have read the entire list of posting here but I find my issue a bit different as I am using the demo site provided by VM at https://demo.myvirtualmerchant.com/VirtualM...Demo/process.do to do the credit card payment processing.

 

I have tried changing the url in the chargeit.php but it does not seem to get to through validation as I have worked with a level 2 tech at VM to no avail.

They do not see the transaction getting to their service at all.

I checked the payment fields were like the image you posted in page 1, post 14

I checked the system setup had the refferer correctly entered as in page 1, post 16

 

I installed a clean version of osCommerce then added teh module & follow the directions the only other change was the url for processing.

Does this module work with VM demo system or only with VM's production environment?

 

The boss wants to make sure osCommerce will work with VM before committing to using them.

Thanks in advance for your help

Link to comment
Share on other sites

  • 2 weeks later...

Are there any plans to add support for Recurring Payments in the near future?

 

Does anyone know what parameters need to be send to Virtual Merchant to indicate a recurring payment?

Link to comment
Share on other sites

Hi there,

 

I installed the Virtual Merchant module a long time ago and the site was receiving orders successfully for a while. Then, I noticed that not all orders placed were going through.

 

I saw that the customers ordering were being charged (as per my bank statement) but I wasn't receiving a PO in my emails and they weren't receiving a confirmation at the end of the order, they would just be sent back to the home page.

 

Any idea why this is happening?

 

Here's my checkout_process.php page just in case anyone would like to help me find the problem:

 

<?php
/*
 $Id: checkout_process.php,v 1.128 2003/05/28 18:00:29 hpdl Exp $
 adapted for Separate Pricing Per Customer 2006/09/09 (attribute prices for groups, hide attributes from groups)

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 include('includes/application_top.php');

// if the customer is not logged on, redirect them to the login page
 if (!tep_session_is_registered('customer_id')) {
$navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT));
tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
 }

 if (!tep_session_is_registered('sendto')) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
 }

 if ( (tep_not_null(MODULE_PAYMENT_INSTALLED)) && (!tep_session_is_registered('payment')) ) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
}

// avoid hack attempts during the checkout procedure by checking the internal cartID
 if (isset($cart->cartID) && tep_session_is_registered('cartID')) {
if ($cart->cartID != $cartID) {
  tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
}
 }

 include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS);

// load selected payment module
 require(DIR_WS_CLASSES . 'payment.php');
 $payment_modules = new payment($payment);

// load the selected shipping module
 require(DIR_WS_CLASSES . 'shipping.php');
 $shipping_modules = new shipping($shipping);

 require(DIR_WS_CLASSES . 'order.php');
 $order = new order;

// check order total minimum
 if ($order->info['subtotal'] < MIN_ORDER_AMOUNT) {
tep_redirect(tep_href_link(FILENAME_SHOPPING_CART, '', 'NONSSL'));
 }

// load the before_process function from the payment modules
 $payment_modules->before_process();

 require(DIR_WS_CLASSES . 'order_total.php');
 $order_total_modules = new order_total;

 $order_totals = $order_total_modules->process();

 $sql_data_array = array('customers_id' => $customer_id,
					  'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],
					  'customers_company' => $order->customer['company'],
					  'customers_street_address' => $order->customer['street_address'],
					  'customers_suburb' => $order->customer['suburb'],
					  'customers_city' => $order->customer['city'],
					  'customers_postcode' => $order->customer['postcode'],
					  'customers_state' => $order->customer['state'],
					  'customers_country' => $order->customer['country']['title'],
					  'customers_telephone' => $order->customer['telephone'],
					  'customers_email_address' => $order->customer['email_address'],
					  'customers_address_format_id' => $order->customer['format_id'],
					  'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'],
					  'delivery_company' => $order->delivery['company'],
					  'delivery_street_address' => $order->delivery['street_address'],
					  'delivery_suburb' => $order->delivery['suburb'],
					  'delivery_city' => $order->delivery['city'],
					  'delivery_postcode' => $order->delivery['postcode'],
					  'delivery_state' => $order->delivery['state'],
					  'delivery_country' => $order->delivery['country']['title'],
					  'delivery_address_format_id' => $order->delivery['format_id'],
					  'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'],
					  'billing_company' => $order->billing['company'],
					  'billing_street_address' => $order->billing['street_address'],
					  'billing_suburb' => $order->billing['suburb'],
					  'billing_city' => $order->billing['city'],
					  'billing_postcode' => $order->billing['postcode'],
					  'billing_state' => $order->billing['state'],
					  'billing_country' => $order->billing['country']['title'],
					  'billing_address_format_id' => $order->billing['format_id'],
					  'payment_method' => $order->info['payment_method'],
					  'cc_type' => $order->info['cc_type'],
					  'cc_owner' => $order->info['cc_owner'],
					  'cc_number' => $order->info['cc_number'],
					  'cc_expires' => $order->info['cc_expires'],
					  'date_purchased' => 'now()',
					  'orders_status' => $order->info['order_status'],
					  'currency' => $order->info['currency'],
					  'currency_value' => $order->info['currency_value']);
 tep_db_perform(TABLE_ORDERS, $sql_data_array);
 $insert_id = tep_db_insert_id();
 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
$sql_data_array = array('orders_id' => $insert_id,
						'title' => $order_totals[$i]['title'],
						'text' => $order_totals[$i]['text'],
						'value' => $order_totals[$i]['value'],
						'class' => $order_totals[$i]['code'],
						'sort_order' => $order_totals[$i]['sort_order']);
tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
 }

 $customer_notification = (SEND_EMAILS == 'true') ? '1' : '0';
 $sql_data_array = array('orders_id' => $insert_id,
					  'orders_status_id' => $order->info['order_status'],
					  'date_added' => 'now()',
					  'customer_notified' => $customer_notification,
					  'comments' => $order->info['comments']);
 tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);

 //kgt - discount coupons
 if( tep_session_is_registered( 'coupon' ) && is_object( $order->coupon ) ) {
  $sql_data_array = array( 'coupons_id' => $order->coupon->coupon['coupons_id'],
						 'orders_id' => $insert_id );
  tep_db_perform( TABLE_DISCOUNT_COUPONS_TO_ORDERS, $sql_data_array );
 }
 //end kgt - discount coupons

// initialized for the email confirmation
 $products_ordered = '';
 $subtotal = 0;
 $total_tax = 0;

 for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
// Stock Update - Joao Correia
if (STOCK_LIMITED == 'true') {
  if (DOWNLOAD_ENABLED == 'true') {
	$stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename
						FROM " . TABLE_PRODUCTS . " p
						LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
						 ON p.products_id=pa.products_id
						LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
						 ON pa.products_attributes_id=pad.products_attributes_id
						WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
// Will work with only one option for downloadable products
// otherwise, we have to build the query dynamically with a loop
	$products_attributes = $order->products[$i]['attributes'];
	if (is_array($products_attributes)) {
	  $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
	}
	$stock_query = tep_db_query($stock_query_raw);
  } else {
	$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
  }
  if (tep_db_num_rows($stock_query) > 0) {
	$stock_values = tep_db_fetch_array($stock_query);
// do not decrement quantities if products_attributes_filename exists
	if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
	  $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
	} else {
	  $stock_left = $stock_values['products_quantity'];
	}
	tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
	if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
	  tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
	}
  }
}

// Update products_ordered (for bestsellers list)
tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

$sql_data_array = array('orders_id' => $insert_id,
						'products_id' => tep_get_prid($order->products[$i]['id']),
						'products_model' => $order->products[$i]['model'],
						'products_name' => $order->products[$i]['name'],
						'products_price' => $order->products[$i]['price'],
						'final_price' => $order->products[$i]['final_price'],
						'products_tax' => $order->products[$i]['tax'],
						'products_quantity' => $order->products[$i]['qty']);
tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);
$order_products_id = tep_db_insert_id();

//------insert customer choosen option to order--------
$attributes_exist = '0';
$products_ordered_attributes = '';
if (isset($order->products[$i]['attributes'])) {
  $attributes_exist = '1';
  for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
	if (DOWNLOAD_ENABLED == 'true') {
	  $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename
						   from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
						   left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
							on pa.products_attributes_id=pad.products_attributes_id
						   where pa.products_id = '" . $order->products[$i]['id'] . "'
							and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "'
							and pa.options_id = popt.products_options_id
							and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "'
							and pa.options_values_id = poval.products_options_values_id
							and popt.language_id = '" . $languages_id . "'
							and poval.language_id = '" . $languages_id . "'";
	  $attributes = tep_db_query($attributes_query);
	} else {
	  $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
	}
	$attributes_values = tep_db_fetch_array($attributes);
// BOF Separate Pricing Per Customer attribute_groups mod
 if (isset($_SESSION['sppc_customer_group_id']) && $_SESSION['sppc_customer_group_id'] != '0') {
   $attributes_group_query = tep_db_query("select pag.options_values_price, pag.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa left join " . TABLE_PRODUCTS_ATTRIBUTES_GROUPS . " pag using(products_attributes_id) where pa.products_id = '" . tep_get_prid($order->products[$i]['id']) . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pag.customers_group_id = '" . (int)$_SESSION['sppc_customer_group_id'] . "'");
	 if ($attributes_group = tep_db_fetch_array($attributes_group_query)) {
		 $attributes_values['options_values_price'] = $attributes_group['options_values_price'];
		 $attributes_values['price_prefix'] = $attributes_group['price_prefix'];
	 }
 }
// EOF Separate Pricing Per Customer attribute_groups mod


	$sql_data_array = array('orders_id' => $insert_id,
							'orders_products_id' => $order_products_id,
							'products_options' => $attributes_values['products_options_name'],
							'products_options_values' => $attributes_values['products_options_values_name'],
							'options_values_price' => $attributes_values['options_values_price'],
							'price_prefix' => $attributes_values['price_prefix']);
	tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);

	if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) {
	  $sql_data_array = array('orders_id' => $insert_id,
							  'orders_products_id' => $order_products_id,
							  'orders_products_filename' => $attributes_values['products_attributes_filename'],
							  'download_maxdays' => $attributes_values['products_attributes_maxdays'],
							  'download_count' => $attributes_values['products_attributes_maxcount']);
	  tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array);
	}
	$products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'];
  }
}
//------insert customer choosen option eof ----
$total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);
$total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];
$total_cost += $total_products_price;

$products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";
 }

// lets start with the email confirmation
 $email_order = STORE_NAME . "\n" .
			 EMAIL_SEPARATOR . "\n" .
			 EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id . "\n" .
			 EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $insert_id, 'SSL', false) . "\n" .
			 EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";
 if ($order->info['comments']) {
$email_order .= tep_db_output($order->info['comments']) . "\n\n";
 }
 $email_order .= EMAIL_TEXT_PRODUCTS . "\n" .
			  EMAIL_SEPARATOR . "\n" .
			  $products_ordered .
			  EMAIL_SEPARATOR . "\n";

 for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
$email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
 }

 if ($order->content_type != 'virtual') {
$email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" .
				EMAIL_SEPARATOR . "\n" .
				tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";
 }

 $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .
			  EMAIL_SEPARATOR . "\n" .
			  tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n";
 if (is_object($$payment)) {
$email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" .
				EMAIL_SEPARATOR . "\n";
$payment_class = $$payment;
$email_order .= $payment_class->title . "\n\n";
if ($payment_class->email_footer) {
  $email_order .= $payment_class->email_footer . "\n\n";
}
 }
 $new_mail_subject = EMAIL_TEXT_SUBJECT . ' - ' . EMAIL_TEXT_ORDER_NUMBER . ' ' . $insert_id;
tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], $new_mail_subject, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

// send emails to other people
 if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, $new_mail_subject, $email_order, $order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address']);
 }

// load the after_process function from the payment modules
 $payment_modules->after_process();

 $cart->reset(true);

// unregister session variables used during checkout
 tep_session_unregister('sendto');
 tep_session_unregister('billto');
 tep_session_unregister('shipping');
 tep_session_unregister('payment');
 tep_session_unregister('comments');
 //kgt - discount coupons
 tep_session_unregister('coupon');
 //end kgt - discount coupons

 tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));

 require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

 

Thank you all very much in advance!

Link to comment
Share on other sites

Are there any plans to add support for Recurring Payments in the near future?
No plans at this point.

 

Does anyone know what parameters need to be send to Virtual Merchant to indicate a recurring payment?

Download the Virtual Merchant Developer guide for this one.

Link to comment
Share on other sites

Does this module work with VM demo system or only with VM's production environment?

This module does not work with VM demo system. Why demo VM? Are you wondering if VM can process credit cards? What is the question exactly? If the question is, will it work as well or better than other systems like authorize.net then the answer is yes. As far as will this module work to charge credit cards, the answer is yes and it is being used by many, many people with no hassles. We use this module on our own websites and have perfect confidence in it. For testing the module simply enter live credit cards, which is the best test anyway, and then void them in your VM console.

Link to comment
Share on other sites

Bump also of note is that amex works, visa doesnt, havent tried mastercard

AMEX, Visa, MC, and Discover work perfectly in this module. Would be pretty ridiculous to release a credit card module that did not accept Visa. Something must be wrong with your installation.

Link to comment
Share on other sites

Thanks for the module.

 

I installed and went straight to live to test it out and got this error in my email:

 

Error Message(s): SERV NOT ALLOWED

Address Verification Response:

CVV2 Verification Response:

 

My Payment Fields in Virtual Merchant look just like yours.

Link to comment
Share on other sites

I'm using an application called OSDate (http://www.tufat.com/s_free_dating_system.htm). According to http://www.tufat.com/docs/osdate/payments.html,

osDate's payment gateway API is nearly identical to osCommerce's payment gateway API. This is because the osCommerce classes were used as a starting point for the osDate API. You can read more about osCommerce at
. It is an open-source e-commerce system.

 

The idea of an "interface" is that it provides a common set of functions across all possible payment gateways. This interface provides the following functions:

 

pre_confirmation_check()

confirmation()

process_button()

... and many others ...

I had just started writing a very basic interface to Virtual Merchant, only to find your solution as I was troubleshooting a defect. Has anyone used your solution for integration to OSDate? If not, is anyone interested in integrating this module into OSDate for a fee? Depending on the price, it might be worth it to me as I can then focus on other, more pressing bugs and enhancements. (Of course, I would also provide you a free annual Platinum membership to my dating site once it's released within the next month, as well as maybe a few extra memberships to hand out to your friends. :D ) Thanx.

 

- B.

Link to comment
Share on other sites

I'm hoping I can get some assistance with this mod on my website. http://budurl.com/ljlb

 

During the checkout screen there aren't any fields for customers to input their billing information, creating an error message to appear.

 

Although I have reviewed this entire thread, I still believe I"m missing something in the installation steps.

 

Help! :blush:

 

Thanks.

P.S. My test customer login is: Username: [email protected], Password: virtual

 

Here's the error message received (however, there's no place to enter this information):

 

Credit Card Error

 

The first four digits of the number entered are: . If that number is correct, we do not accept that type of credit card. If it is wrong, please try again.

Name & Expiration Date Entered:- Expiration Date Entered: /

Edited by tigress
Link to comment
Share on other sites

Error Message(s): SERV NOT ALLOWED

This means that the Virtual Merchant processor is receiving an invalid request. You need to check the data being sent to the processor and look for errors in your configuration.

Link to comment
Share on other sites

Has anyone used your solution for integration to OSDate?

I have no idea.

 

is anyone interested in integrating this module into OSDate for a fee?

If this osDate is based off of osCommerce then it should integrate like normal, unless there are modifications to the checkout functions.

Link to comment
Share on other sites

During the checkout screen there aren't any fields for customers to input their billing information

I may be misunderstanding here, but billing information is entered when the account is created. Not during the checkout process. However, at the checkout_confirmation.php page they do have the option to click "Edit" on the billing information section.

 

The first four digits of the number entered are: . If that number is correct, we do not accept that type of credit card. If it is wrong, please try again.

Name & Expiration Date Entered:- Expiration Date Entered: /

Because your error message here does not contain information like exp date, etc it appears you have missed a step or incorrectly performed one of the setup steps. Please include your code for the checkout_payment.php page.

Link to comment
Share on other sites

  • 4 weeks later...

Great module, been using it all year.

 

What I'd really like to see though, is to have the module remove the CC info from the db (or better yet - never put it in there) to greatly help with PCI compliance.

 

I use another mod now to remove the info manually, but why should it be there in the first place?

 

Thanks and a pat-on-the-back to you.

Link to comment
Share on other sites

What I'd really like to see though, is to have the module remove the CC info from the db (or better yet - never put it in there) to greatly help with PCI compliance.

This certainly can be done. I will make it an option in the next release. Working on a massive project right now. There are several features offered by Virtual Merchant I would like to add like gift cards, etc, but time is of the essence. Glad it is working for you.

Link to comment
Share on other sites

  • 2 weeks later...

im receving this same error also:

 

 

 

Credit Card Error

 

The card entered is being declined. This most often is due to incorrectly entered information. Please try re-entering your information.

Name & Expiration Date Entered: xxxxx - Expiration Date Entered: xxxx (MMYY)

 

is this something i will have to call vm to resolve the issue? I'm pretty sure I did everything correctly.

Link to comment
Share on other sites

Credit Card Error

 

The card entered is being declined. This most often is due to incorrectly entered information. Please try re-entering your information.

Name & Expiration Date Entered: xxxxx - Expiration Date Entered: xxxx (MMYY)

 

is this something i will have to call vm to resolve the issue? I'm pretty sure I did everything correctly.

 

This is not the actual error that VM is returning. You need to post the email errors you are receiving. They should contain (if you are actually connecting to VM) errors VM is returning.

Link to comment
Share on other sites

This is not the actual error that VM is returning. You need to post the email errors you are receiving. They should contain (if you are actually connecting to VM) errors VM is returning.

 

whats funny is i actually did enable email errors but im not receiving any emails

Link to comment
Share on other sites

would you happen to know why im not getting the error emails being sent?

Check your PHP error logs. Look for script errors or server errors. Are your customers receiving order emails? The email error system on ChargeIt uses the same system as the order emails.

Link to comment
Share on other sites

Check your PHP error logs. Look for script errors or server errors. Are your customers receiving order emails? The email error system on ChargeIt uses the same system as the order emails.

 

i checked the error log files in the admin i dont know if thats the same thing, but i didnt see any errors resembling anything to do with the credit card process. Customers dont receive order emails, the order doesnt complete

Link to comment
Share on other sites

i checked the error log files in the admin i dont know if thats the same thing, but i didnt see any errors resembling anything to do with the credit card process. Customers dont receive order emails, the order doesnt complete

Just a general note. This contribution was designed for osCommerce, not oscmax, or any other oscommerce spinoff. If you are using an osC spinoff please do not request support for this contribution when you cannot get it to work. And if you really just need support, mention at the the beginning of the thread that you are using a spinoff that has the osC core modified. And then the answer from me at least will be no support for a non osc core system.

Link to comment
Share on other sites

Zelf:

In order to test my installation of this add-on must I have my Merchant User PIN, Virtual Merchant User ID & Virtual Merchant Account ID entered correctly? I tired without them and only got a blank page at confirmation.

I have used Elavon and it's predecessors for 20 years and although I have a Merchant ID number I do not believe I was ever issued a Merchant User PIN, Virtual Merchant User ID or Virtual Merchant Account ID. How do you get them?

Thanks for any help.

Link to comment
Share on other sites

I have a Merchant ID number I do not believe I was ever issued a Merchant User PIN, Virtual Merchant User ID or Virtual Merchant Account ID. How do you get them?

In your VM account under terminal settings for a user you will see your PIN, User ID, and Account ID. If you are not able to find them I would just put in a call to tech support and they will help you to track this info down.

Link to comment
Share on other sites

In your VM account under terminal settings for a user you will see your PIN, User ID, and Account ID. If you are not able to find them I would just put in a call to tech support and they will help you to track this info down.

 

Thank you!

Link to comment
Share on other sites

  • 1 month later...

hi zelf, I mailed you about my problem.

my main problem is referrer url

 

the error I got is :

 

Customer ID #7

[email protected]

roopak jha

India

 

Error Message(s): 4003. HTTP Referrer Invalid. HTTP POST transactions are not allowed for this HTTP Referrer.

Address Verification Response:

CVV2 Verification Response:

 

And one more thing:

when this function calls i tried to see values of response by adding "print_r($response);die;" but its gives empty

array. I am stuck here please help.

 

function cURLDataStream($transaction_data) {

// concatenate the submission data and put into variable $data

while(list($key, $value) = each($transaction_data)) {

$data .= $key . '=' . urlencode(ereg_replace(',', '', $value)) . '&';

}

 

// Remove the last "&" from the string

$data = substr($data, 0, -1);

unset($response);

 

// Post order info data to Virtual Merchant

// Requires cURL must be compiled into PHP

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $this->virtual_merchant_url); // url set in constructor

curl_setopt($ch, CURLOPT_VERBOSE, 1);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_REFERER, $this->curl_referer);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$authorize = curl_exec($ch);

curl_close($ch);

$response = explode("\n", $authorize); // explode each line of response into an array

print_r($response);die;

$this->responseAry = array();

 

foreach ($response as $line) {

$codes = explode('=', $line);

list($key, $value) = $codes;

$this->responseAry[$key] = $value;

}

 

$this->testAry[] = $transaction_data;

$this->testAry[] = $authorize;

 

$this->msgResultTests(); // Test the results

}

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