Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Protx Direct v2.22


Guest

Recommended Posts

Just a suggestion

 

might it not be better if the customer has to select the card type from a drop down list, rather than it being calculated, possible with card types being selectible by admin in the payment module admin section.

 

 

regards

 

 

Chris

Edited by wheeloftime
Link to comment
Share on other sites

  • Replies 1.2k
  • Created
  • Last Reply

Top Posters In This Topic

I've got the store running through SSL, and CURL enabled on the server.

PROTX is fully setup with all the possible server IP's etc.

 

Clicking 'CONFIRM ORDER' on 'checkout_confirmation.php' just sends me back to 'checkout_payment.php?error_message=' without any error message, or sign that anything hasn't worked.

 

Also, setting the 'Server IP Test' transaction option, does not show the 'Remote Address' of the server, it still only shows the 'Client Address'?

 

No transactions are shown in the PROTX admin page.

 

Please can someone help me fix this?

 

VPSProtocol=2.22&TxType=PAYMENT&Vendor=atvcentre&VendorTxCode=5468962650811753

&Amount=313.29&Currency=GBP&Description=AC+Racing+Front+Bumper%28qty%3A+1%29+

%2B+Mega+Speed+Axle%28qty%3A+1%29+%2B+Pro+Design+Kill+Switch%28qty%3A+1%29+

&CardHolder=test+test&CardNumber=4929000000006&StartDate=&ExpiryDate=0506&IssueNumber=

&CV2=&CardType=Visa&CustomerEMail=test%40test.com&ContactNumber=000&BillingAddress=1+test&

BillingPostCode=test&DeliveryAddress=1+test&DeliveryPostCode=test&CAVV=&XID=&ECI=

&ClientIPAddress=86.xxx.152.182&3DSecureStatus=

Edited by newtrax
Link to comment
Share on other sites

I've got the store running through SSL, and CURL enabled on the server.

PROTX is fully setup with all the possible server IP's etc.

 

Clicking 'CONFIRM ORDER' on 'checkout_confirmation.php' just sends me back to 'checkout_payment.php?error_message=' without any error message, or sign that anything hasn't worked.

 

Also, setting the 'Server IP Test' transaction option, does not show the 'Remote Address' of the server, it still only shows the 'Client Address'?

 

No transactions are shown in the PROTX admin page.

 

Please can someone help me fix this?

 

VPSProtocol=2.22&TxType=PAYMENT&Vendor=atvcentre&VendorTxCode=5468962650811753

&Amount=313.29&Currency=GBP&Description=AC+Racing+Front+Bumper%28qty%3A+1%29+

%2B+Mega+Speed+Axle%28qty%3A+1%29+%2B+Pro+Design+Kill+Switch%28qty%3A+1%29+

&CardHolder=test+test&CardNumber=4929000000006&StartDate=&ExpiryDate=0506&IssueNumber=

&CV2=&CardType=Visa&CustomerEMail=test%40test.com&ContactNumber=000&BillingAddress=1+test&

BillingPostCode=test&DeliveryAddress=1+test&DeliveryPostCode=test&CAVV=&XID=&ECI=

&ClientIPAddress=86.xxx.152.182&3DSecureStatus=

 

Hi newtrax,

 

You are not the only one with this problem - a couple of others have contacted me about this. The debug string you posted is fine from the osc protx module side but does show that the protx server is not responding to the request. I think this is to do with some webhosts setup and curl - try making the changes below to includes/modules/payment/protx_direct.php and see if it helps:

 

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

// Add these lines
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// End of Add

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, $data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

 

With regards to the card types i've emailed protx to see if i can get hold of an u-to-date list of card types and respective numbers.

 

HTH, Tom

Link to comment
Share on other sites

Hi newtrax,

 

You are not the only one with this problem - a couple of others have contacted me about this. The debug string you posted is fine from the osc protx module side but does show that the protx server is not responding to the request. I think this is to do with some webhosts setup and curl - try making the changes below to includes/modules/payment/protx_direct.php and see if it helps:

 

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

// Add these lines
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
// End of Add

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, $data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

 

With regards to the card types i've emailed protx to see if i can get hold of an u-to-date list of card types and respective numbers.

 

HTH, Tom

Your code suggestion helped me in 'Server IP Test' mode to bring back a long page of POST data,

(including confirming the remote_addr is correct).

 

BUT 'TEST' mode still returns to checkout_payment.php?error_message=Card , no matter what card number I enter (admin examples, or genuine)

 

PROTX ARE getting the information now though, as there is a list of FAILED transactions showing!

 

Is this why you wrote to say that you have emailed PROTX for a list of valid card numbers to test with?

 

Thanks again for your help!

Link to comment
Share on other sites

Your code suggestion helped me in 'Server IP Test' mode to bring back a long page of POST data,

(including confirming the remote_addr is correct).

 

BUT 'TEST' mode still returns to checkout_payment.php?error_message=Card , no matter what card number I enter (admin examples, or genuine)

 

PROTX ARE getting the information now though, as there is a list of FAILED transactions showing!

 

Is this why you wrote to say that you have emailed PROTX for a list of valid card numbers to test with?

 

Thanks again for your help!

 

the valid card number comments is purely for the minority of new cards that are being refused (eg some visa electron) - protx were unable to help but i've tracked down http://www.epdq.com/existing_customers/ope...f/binranges.pdf and will try to update the validation from this.

 

newtrax, with regard to your latest problem maybe you could post the debug code (turn on debug in admin then post the full output after a test transaction including the protx response) and we can see if there's any clues.

 

Tom

Link to comment
Share on other sites

Please try to keep topic posts on the forum. I know that's not always possible, but where you arrive at a solution via PM then please post it in the topic or make clear what it refers to.

 

Thank You

 

Vger

Link to comment
Share on other sites

At lot of the problems seem to be caused by cc_validation.php

 

Testing with a dummy card number of 4903030000000007 this should be a switch/maestro_domestic card but my cc_validation.php shows it as a visa

 

basically

 

} elseif (ereg('^4[0-9]{12}([0-9]{3})?$', $this->cc_number)) {
	$this->cc_type = 'Visa';

 

is one of the first lines in the card type check and sets the card type to visa

 

and

 

} elseif (ereg('^(49030[2-9]|49033[5-9]|49110[1-2]|4911(7[4-9]|8[1-2])|4936[0-9]{2}|564182|6333[0-4][0-9]|6759[0-9]{2})[0-9]{10}([0-9]{2,3})?$', $this->cc_number)) {
	$this->cc_type = 'Switch';

 

is never called

 

At the moment I am rehashing the card types in cc_validation.php, will post here when complete

 

regards

 

 

 

Chris

Link to comment
Share on other sites

I have the Protx Direct module installed.

 

I have been having problems with customers complaining that they are asked for a start date on the card but say their cards do not list a start date, so they do not insert a start date, only an end date. It does not process the transaction and responds with an error message.

 

Any idea why this is. Must all switch cards have a start date or do only some of them have? Is this an error with the module?

 

Thanks for any help.

Mary-Ann

Chief Cook and Bottlewasher

Jack-of-All-Trades

Running 2.2MS2

Link to comment
Share on other sites

I have just released v2.3 of the Protx Direct module - It covers some items that were causing problems:-

 

- Overhaul of module code - streamlined the unnecessary.

- Fixed database issue where order_id was incorrect (caused by deleting orders from orders table but auto-increment not reset)

- Added option to send cart details to protx (Thanks to Mike Jackson for his Protx form code)

- Description in protx now uses the order number rather than cart items

- Fixed display of expiry date etc on confirmation page

- Removed option to turn start date / CVV / Issue number off (if not applicable to card can just be left blank)

- Full address now sent to Protx - previously only 1st line & postcode were sent: this caused auth issues when AVS rules were applied in some circumstances.

- Added extra database fields to table protx_direct: txtype, vendortxcode, txtime

- No longer uses cc_validation.php, this was out-of-date and difficult to keep up to date with ever changing card ranges.

- Introduced customer selection of card type instead (Protx automatically validates number against type so we don't really need to do it ourselves).

- Ability to select which card types are available through admin section.

 

 

Let me know if there's any issues (please note that some of you may need to change the curl options - see

posts above).

 

Tom

Link to comment
Share on other sites

I have installed this but once you have chosen a card and number etc this remains for the whole session, need to terminate the session before it will accept a different card type or number

 

Then i get this message:

The amount is non-numeric. - Your credit card could not be authorized for this reason. Please correct any information and try again or contact us for further assistance.

Link to comment
Share on other sites

Hi ianraba,

I've been unable to replicate either of your problems on either of by test and live stores. I;m not sure what is causing the card details to be retained. With regards to the non-numeric error can you enable debug mode in the admin then do a test transaction and post the results here? - might be able to spot something.

 

 

 

Mary-at-milton,

As far as I am aware Switch/Maestro cards all have a start date, i think some older cards may have issue numbers instead of a start date however looking at the offical Protx protocol document they require a start date for all Switch / Solo / Amex cards.

 

HTH,

Tom

Link to comment
Share on other sites

hi :)

firstly, thanks to the author(s) of this contribution, its excellent :)

 

i have setup v2.3 on my shop and its working fine for valid visa/mastercard/switch cards (the only ones i wish to accept at the minute).

 

my only problem is the error message which occurs when the card details are incorrect.

 

rather than a popup box or a red stripe at the top with explanatory text the browser returns a 500 Internal Server Error with an additional 404

 

i can clearly see the error message in the url, which is as follows...

https://www.easypricepro.com/catalog/checko...expires_year=06

 

the shop is live and can be browsed here

http://www.easypricepro.com/catalog/

 

just like to stress, the shop is working fine, SSL being enabled in the relevant pages (i know of the iframe issue and am working on a redesign for the new site) and this error only occuring when an invalid card is entered.

 

I appreciate any help you may be able to offer me.

 

andy

Link to comment
Share on other sites

hi :)

firstly, thanks to the author(s) of this contribution, its excellent :)

 

i have setup v2.3 on my shop and its working fine for valid visa/mastercard/switch cards (the only ones i wish to accept at the minute).

 

my only problem is the error message which occurs when the card details are incorrect.

 

rather than a popup box or a red stripe at the top with explanatory text the browser returns a 500 Internal Server Error with an additional 404

 

i can clearly see the error message in the url, which is as follows...

https://www.easypricepro.com/catalog/checko...expires_year=06

 

the shop is live and can be browsed here

http://www.easypricepro.com/catalog/

 

just like to stress, the shop is working fine, SSL being enabled in the relevant pages (i know of the iframe issue and am working on a redesign for the new site) and this error only occuring when an invalid card is entered.

 

I appreciate any help you may be able to offer me.

 

andy

 

 

Hi andy,

 

I don't think it's a problem with the protx module but seems to be more of a problem with your checkout_payment.php file (or related osc files). Perhaps try posting the file here and we'll see if we can spot anything.

 

Thank,

Tom

Link to comment
Share on other sites

edit: for what its worth, i replaced this existing file with the original copy from the archive and the error is the same. i guess some include file which does the error handling has been altered in some way? trouble is, i dont have a clue where that would be! thanks for any help :)

 

heres the entire checkout_payment.php file, i dont recall ever changing this. my shop is pretty much standard, just unnecessary bits removed to keep it as simple as possible.

<?php
/*
 $Id: checkout_payment.php,v 1.113 2003/06/29 23:03:27 hpdl Exp $

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

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 require('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();
tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL'));
 }

// if there is nothing in the customers cart, redirect them to the shopping cart page
 if ($cart->count_contents() < 1) {
tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
 }

// if no shipping method has been selected, redirect the customer to the shipping method selection page
 if (!tep_session_is_registered('shipping')) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', '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'));
}
 }

// Stock Check
 if ( (STOCK_CHECK == 'true') && (STOCK_ALLOW_CHECKOUT != 'true') ) {
$products = $cart->get_products();
for ($i=0, $n=sizeof($products); $i<$n; $i++) {
  if (tep_check_stock($products[$i]['id'], $products[$i]['quantity'])) {
	tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
	break;
  }
}
 }

// if no billing destination address was selected, use the customers own address as default
 if (!tep_session_is_registered('billto')) {
tep_session_register('billto');
$billto = $customer_default_address_id;
 } else {
// verify the selected billing address
$check_address_query = tep_db_query("select count(*) as total from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . (int)$customer_id . "' and address_book_id = '" . (int)$billto . "'");
$check_address = tep_db_fetch_array($check_address_query);

if ($check_address['total'] != '1') {
  $billto = $customer_default_address_id;
  if (tep_session_is_registered('payment')) tep_session_unregister('payment');
}
 }

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

 if (!tep_session_is_registered('comments')) tep_session_register('comments');

 $total_weight = $cart->show_weight();
 $total_count = $cart->count_contents();

// load all enabled payment modules
 require(DIR_WS_CLASSES . 'payment.php');
 $payment_modules = new payment;

 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PAYMENT);

 $breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
 $breadcrumb->add(NAVBAR_TITLE_2, tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<script language="javascript"><!--
var selected;

function selectRowEffect(object, buttonSelect) {
 if (!selected) {
if (document.getElementById) {
  selected = document.getElementById('defaultSelected');
} else {
  selected = document.all['defaultSelected'];
}
 }

 if (selected) selected.className = 'moduleRow';
 object.className = 'moduleRowSelected';
 selected = object;

// one button is not an array
 if (document.checkout_payment.payment[0]) {
document.checkout_payment.payment[buttonSelect].checked=true;
 } else {
document.checkout_payment.payment.checked=true;
 }
}

function rowOverEffect(object) {
 if (object.className == 'moduleRow') object.className = 'moduleRowOver';
}

function rowOutEffect(object) {
 if (object.className == 'moduleRowOver') object.className = 'moduleRow';
}
//--></script>
<?php echo $payment_modules->javascript_validation(); ?>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
 <tr>
<!-- body_text //-->
<td width="100%" valign="top"><?php echo tep_draw_form('checkout_payment', tep_href_link(FILENAME_CHECKOUT_CONFIRMATION, '', 'SSL'), 'post', 'onsubmit="return check_form();"'); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
		<td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_payment.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
<?php
 if (isset($HTTP_GET_VARS['payment_error']) && is_object(${$HTTP_GET_VARS['payment_error']}) && ($error = ${$HTTP_GET_VARS['payment_error']}->get_error())) {
?>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><b><?php echo tep_output_string_protected($error['title']); ?></b></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBoxNotice">
	  <tr class="infoBoxNoticeContents">
		<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td class="main" width="100%" valign="top"><?php echo tep_output_string_protected($error['error']); ?></td>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
<?php
 }
?>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><b><?php echo TABLE_HEADING_BILLING_ADDRESS; ?></b></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
	  <tr class="infoBoxContents">
		<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> 
			<td class="main" width="50%" valign="top"><?php echo TEXT_SELECTED_BILLING_DESTINATION; ?><br><br><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT_ADDRESS, '', 'SSL') . '">' . tep_image_button('button_change_address.gif', IMAGE_BUTTON_CHANGE_ADDRESS) . '</a>'; ?></td>
			<td align="right" width="50%" valign="top"><table border="0" cellspacing="0" cellpadding="2">
			  <tr>
				<td class="main" align="center" valign="top"><b><?php echo TITLE_BILLING_ADDRESS; ?></b><br><?php echo tep_image(DIR_WS_IMAGES . 'arrow_south_east.gif'); ?></td>
				<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> 
				<td class="main" valign="top"><?php echo tep_address_label($customer_id, $billto, true, ' ', '<br>'); ?></td>
				<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td> 
			  </tr>
			</table></td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><b><?php echo TABLE_HEADING_PAYMENT_METHOD; ?></b></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
	  <tr class="infoBoxContents">
		<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
 $selection = $payment_modules->selection();

 if (sizeof($selection) > 1) {
?>
		  <tr>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td class="main" width="50%" valign="top"><?php echo TEXT_SELECT_PAYMENT_METHOD; ?></td>
			<td class="main" width="50%" valign="top" align="right"><b><?php echo TITLE_PLEASE_SELECT; ?></b><br><?php echo tep_image(DIR_WS_IMAGES . 'arrow_east_south.gif'); ?></td>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
		  </tr>
<?php
 } else {
?>
		  <tr>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td class="main" width="100%" colspan="2"><?php echo TEXT_ENTER_PAYMENT_INFORMATION; ?></td>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
		  </tr>
<?php
 }

 $radio_buttons = 0;
 for ($i=0, $n=sizeof($selection); $i<$n; $i++) {
?>
		  <tr>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td colspan="2"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
if ( ($selection[$i]['id'] == $payment) || ($n == 1) ) {
  echo '				  <tr id="defaultSelected" class="moduleRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n";
} else {
  echo '				  <tr class="moduleRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="selectRowEffect(this, ' . $radio_buttons . ')">' . "\n";
}
?>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
				<td class="main" colspan="3"><b><?php echo $selection[$i]['module']; ?></b></td>
				<td class="main" align="right">
<?php
if (sizeof($selection) > 1) {
  echo tep_draw_radio_field('payment', $selection[$i]['id']);
} else {
  echo tep_draw_hidden_field('payment', $selection[$i]['id']);
}
?>
				</td>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			  </tr>
<?php
if (isset($selection[$i]['error'])) {
?>
			  <tr>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
				<td class="main" colspan="4"><?php echo $selection[$i]['error']; ?></td>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			  </tr>
<?php
} elseif (isset($selection[$i]['fields']) && is_array($selection[$i]['fields'])) {
?>
			  <tr>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
				<td colspan="4"><table border="0" cellspacing="0" cellpadding="2">
<?php
  for ($j=0, $n2=sizeof($selection[$i]['fields']); $j<$n2; $j++) {
?>
				  <tr>
					<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
					<td class="main"><?php echo $selection[$i]['fields'][$j]['title']; ?></td>
					<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
					<td class="main"><?php echo $selection[$i]['fields'][$j]['field']; ?></td>
					<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
				  </tr>
<?php
  }
?>
				</table></td>
				<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			  </tr>
<?php
}
?>
			</table></td>
			<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
		  </tr>
<?php
$radio_buttons++;
 }
?>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
		<td class="main"><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
	  <tr class="infoBoxContents">
		<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr>
			<td><?php echo tep_draw_textarea_field('comments', 'soft', '60', '5'); ?></td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
	  <tr class="infoBoxContents">
		<td><table border="0" width="100%" cellspacing="0" cellpadding="2">
		  <tr>
			<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
			<td class="main"><b><?php echo TITLE_CONTINUE_CHECKOUT_PROCEDURE . '</b><br>' . TEXT_CONTINUE_CHECKOUT_PROCEDURE; ?></td>
			<td class="main" align="right"><?php echo tep_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE); ?></td>
			<td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
		  </tr>
		</table></td>
	  </tr>
	</table></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
	  <tr>
		<td width="25%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
		  <tr>
			<td width="50%" align="right"><?php echo tep_draw_separator('pixel_silver.gif', '1', '5'); ?></td>
			<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
		  </tr>
		</table></td>
		<td width="25%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
		  <tr>
			<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
			<td><?php echo tep_image(DIR_WS_IMAGES . 'checkout_bullet.gif'); ?></td>
			<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
		  </tr>
		</table></td>
		<td width="25%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
		<td width="25%"><table border="0" width="100%" cellspacing="0" cellpadding="0">
		  <tr>
			<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '100%', '1'); ?></td>
			<td width="50%"><?php echo tep_draw_separator('pixel_silver.gif', '1', '5'); ?></td>
		  </tr>
		</table></td>
	  </tr>
	  <tr>
		<td align="center" width="25%" class="checkoutBarFrom"><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '" class="checkoutBarFrom">' . CHECKOUT_BAR_DELIVERY . '</a>'; ?></td>
		<td align="center" width="25%" class="checkoutBarCurrent"><?php echo CHECKOUT_BAR_PAYMENT; ?></td>
		<td align="center" width="25%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_CONFIRMATION; ?></td>
		<td align="center" width="25%" class="checkoutBarTo"><?php echo CHECKOUT_BAR_FINISHED; ?></td>
	  </tr>
	</table></td>
  </tr>
</table></form></td>
<!-- body_text_eof //-->
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
</table></td>
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

apologies for the mega-post!

Edited by andyEPP
Link to comment
Share on other sites

Does anyone have any plans to intergrate the shared protocol (as shown below) into the osCommerce Admin? I would try but I am useless with cURL.

 

http://www.protx.com/downloads/docs/VSPSer...edProtocols.pdf

 

Thank you. Great module.

 

In regard to ianraba's error: I'm not sure if this is related, but with my installation in high value transactions over ?1000 the comma was being included in the string being submitted to Protx, so the amount was non-numeric. Hope this helps.

 

Scott

no outside links please

Link to comment
Share on other sites

Hello,

 

First off, excellent module! But: Has anyone had any problems with the value of the transaction that's being sent to protx for processing? I've installed this module and got it working and the transaction goes through ok but unfortunately it seems to pass the value of my goods but without the tax being added onto the shipping rate...

 

ie

 

Price of Item + TAX

Price of shipping (without TAX)

 

The value displayed to my customer and the value shown on the order total within OSc is the correct amount, it's just the amount that's being requested from the customers credit / debit card that's not right.

 

Thanks

 

Sam

 

Doesn't look like anybody replied to your question, which is a pity since I have the same problem? :-(

 

Vger! Heeeeelp!!!

 

Exactly as described, i made an total ?8.52 order which was calculated correctly using Paypal, but via Protx the final value was ?7.40 :huh:

 

I am going to try the new mod, as see if that resolves the problem, otherwise I'm a bit confused why this is happenning. Any Ideas???

 

I am calulating VAT on my products and shipping, but am wondering if it has something to do with weight?

 

Either way, there must be something incorrect in the mod, since Paypal captures the correct amount without any problems.

 

Pllease can you give me any thoughts on this, TIA,

Q/ How many therapist's does it take to change a lightbulb?

A/ Two. But the lightbulb has to really 'want' to change.

Link to comment
Share on other sites

Sorry, but I can't help. I haven't even had time to download and look at what Tom (perfectpassion) did with the latest update of this module - but the coding changes sound fairly radical from the post above.

 

Vger

Link to comment
Share on other sites

Sorry, but I can't help. I haven't even had time to download and look at what Tom (perfectpassion) did with the latest update of this module - but the coding changes sound fairly radical from the post above.

 

Vger

 

Well after a little more playing around making transactions via ProtX, I've managed to find the right direction to look-in atleast, with regard tax for shipping being added to the final price in ProtX admin.

 

If I switch off Taxable Goods in the shipping module, Protx matches the same figure osC does.

 

So it looks like it's tax related somewhere... :blink:

 

Any thoughts appreciated from anyone... I'm now hunting the culprit.

 

be back soon with the answer soon hopefully. (finges Xssed).

Q/ How many therapist's does it take to change a lightbulb?

A/ Two. But the lightbulb has to really 'want' to change.

Link to comment
Share on other sites

First of all, thanks to Vger and perfectpassion for their excellent work on this module. Can't wait for protx to (finally) activate 3dsecure now - hopefully it will be worth all the slippage in their timetable.

 

Now, the tricky bit.. it's more of a "has anyone else found this" than a problem with the module (I hope).

 

I'm really quite sad, and quite often spend a little time watching the "who's online (v1.9)" screen, as I think it gives a good insight into where customers are coming from and how they behave in the store. Anyway, for 3 or 4 which I have seen, and 2 who have contacted us, there seems to be a problem at the checkout confirmation stage.

 

The symptoms are as follows... after all the create account and into checkout_shipping, where they enter their credit card details (fast easy checkout is installed) they then move to checkout_confirmation, and and then why they click the confirm button, they get returned to checkout_shipping, with no error code. Usually, with a CVV error, or invalid expiry date etc, this all works fine. This is v2.3 of the module by the way.

 

I thought initially, this was a problem with certain visa electron cards, but this morning, the same problem happened with a mastercard. One of them then suggested that he had JavaScript turned off, however, turning JavaScript off does not seem to replicate the problem.

 

In both cases, the customers managed to complete by using a different credit card, however I would love to get to the bottom of the issue, as customers are getting (understandably) concerned when they are unsure if they have completed an order or not.

 

So.. any of you seen this?

 

Many thanks in advance,

 

Harv

Edited by harvuk
Link to comment
Share on other sites

Hi,

 

Sorry for the delay in getting back to you but have been away looking after poorly mother-in-law!!

 

andyEPP - the checkout_payment.php is fine so the fault must be in one of the other osC files but i'm not sure where. Try using a file compare utility to compare your files with the stock osC one for any changes that may have impacted. Check especially the files in the includes subdirectory and below.

 

 

AoM_Scott - As it would happen I am currently working on an extension to the module to implement the shared protocol (i.e add the ability to release, repeat, refund, abort, void etc directly from within the osc admin). My plan is to link it to the individual orders and then be able to pull up a page showing the transactions for the order then refund etc from there. Any thoughts / comments on how you'd like to to happen?

 

thewrath1 - now i'm back i'll spend a bit of time looking into your problem and report back

 

Harvuk - could you expand a little more an what the problem is, it is probably me since i'm a bit tired at the moment but i'm struggling with what error (or is that no error) you are getting particularly with:

 

they get returned to checkout_shipping, with no error code. Usually, with a CVV error, or invalid expiry date etc, this all works fine.

 

I will report back with any developements!!!

 

Tom

Link to comment
Share on other sites

Great new protx module! A lot tidier than the old one.

 

I cant get it to work with the Credit Class/Gift Vouchers/Discount Coupons contribution though. The price sent to protx doesn?t have the discount.

 

Is it possibly something to do with sending the basket contents and not the final total?

 

I'm not sure whether to PM Vger about this as he wrote this and has written a version of the CCGV called CCGV(trad). Maybe I should try Vger's version of CCGV with protx. Although its better to keep these things on the forum so others can read the solutions.

Edited by Caios
Link to comment
Share on other sites

Right, its 4am and I've got it working with the CCGV (CCGV5_15_a2.zip) I've done a few different things, rearanged the order of the "order total" modules in admin, moved the order of some code in payment_proccess.php and some other stuff I've forgoten. So I cant be sure what the problem was.

 

One of those days today when nothing works at first! lol Goodnight and great new Protx module.

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