OSCOMMERCE SUPPORT CALL 702-453-3332

 

Help - Search - Members - Calendar
Full Version: Protx Direct v2.22
osCommerce Community Support Forums > osCommerce Online Merchant v2.x > Contributions / Add-Ons > Payment Modules > Other
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
symbolism
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
symbolism
possible - possibly

must learn to spell check smile.gif
newtrax
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=
perfectpassion
QUOTE (newtrax @ Mar 22 2006, 06:22 PM) *
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:

CODE
$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
newtrax
QUOTE (perfectpassion @ Mar 22 2006, 10:38 PM) *
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:

CODE
$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!
symbolism
There is quite a usefull credit card generater for spefic card types at

http://www.eflo.net/downloads.php

being trying to use this to test any card failures we are having


regards


Chris
Stewart Gilray
Tom,
As has been discussed via PM, this change worked for me 100% And am now in production mode.

Cheers.
perfectpassion
QUOTE (newtrax @ Mar 23 2006, 01:57 PM) *
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
Vger
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
symbolism
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

CODE
} 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

CODE
} 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
Mary-at-Milton
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.
perfectpassion
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
ianraba
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.
perfectpassion
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
andyEPP
hi smile.gif
firstly, thanks to the author(s) of this contribution, its excellent smile.gif

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
perfectpassion
QUOTE (andyEPP @ Mar 29 2006, 03:09 PM) *
hi smile.gif
firstly, thanks to the author(s) of this contribution, its excellent smile.gif

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
andyEPP
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 smile.gif

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.
CODE
<?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!
AoM_Scott
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
thewrath1
QUOTE (SWH-Sam @ Mar 1 2006, 06:58 PM) *
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.gif

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,
Vger
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
thewrath1
QUOTE (Vger @ Apr 4 2006, 05:16 PM) *
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.gif

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

be back soon with the answer soon hopefully. (finges Xssed).
harvuk
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
perfectpassion
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:

QUOTE
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
Caios
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.
Caios
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.
harvuk
QUOTE
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:


Tom,

the problem is that when customers are clicking the confirm transaction button, they are being returned back to the screen where they enter their card details, with no explanation why. The transaction has not been processed, but the customer doesn't know this.

I hope that's clearer, if not, let me know and I'll try again smile.gif

Many thanks for your help.
perfectpassion
QUOTE (harvuk @ Apr 8 2006, 10:30 AM) *
Tom,

the problem is that when customers are clicking the confirm transaction button, they are being returned back to the screen where they enter their card details, with no explanation why. The transaction has not been processed, but the customer doesn't know this.

I hope that's clearer, if not, let me know and I'll try again smile.gif

Many thanks for your help.



Thanks,

Could be difficult to track down the problem if it is only happening occaisonally - any extra detail when it happens would be really helpful (e.g card type, 1st 6 digits of card, any errors that appear to the customer etc).

Do you have any errors (failed or invalid transactions) when you go into the Protx admin area - if so what are the failure details.

thanks,
Tom
Vger
QUOTE
cai

I don't know if it's the same problem, but there was a similar problem with Authorize Net AIM and CCGV. In checkout _process.php someone using Authorize Net reported that the discount coupon/gift voucher was not being deducted from the total when it was passed to Authorize Net. Their solution was to change the placement of this line:

$order_totals = $order_total_modules->process();

so that it came immediately BEFORE the before_process line in checkout_process.php

All I can say is that it was reported that this worked for them, but I found that when this was done and another payment method was used that it returned a class error.

Vger
Caios
QUOTE (Vger @ Apr 8 2006, 12:05 PM) *
I don't know if it's the same problem, but there was a similar problem with Authorize Net AIM and CCGV. In checkout _process.php someone using Authorize Net reported that the discount coupon/gift voucher was not being deducted from the total when it was passed to Authorize Net. Their solution was to change the placement of this line:

$order_totals = $order_total_modules->process();

so that it came immediately BEFORE the before_process line in checkout_process.php

All I can say is that it was reported that this worked for them, but I found that when this was done and another payment method was used that it returned a class error.

Vger




biggrin.gif


Funnily enough Vger, I saw your post in the CCGV thread about doing that for the Authorize.net module and though I’d give it a try for getting this Protx module working with CCGV. It could have been and probably was exactly what fixed it.

I only offer one payment method so a class error shouldnt be a problem for me.

Nice one!
harvuk
QUOTE (perfectpassion @ Apr 8 2006, 11:53 AM) *
Could be difficult to track down the problem if it is only happening occaisonally - any extra detail when it happens would be really helpful (e.g card type, 1st 6 digits of card, any errors that appear to the customer etc).

Do you have any errors (failed or invalid transactions) when you go into the Protx admin area - if so what are the failure details.


Tom,

I haven't seen any pattern to this - another custome had the same problem last night.. it's sooo frustrating watching them go round in circles.

In answer to your questions,
I know this has happened to both Mastercards and Visa Electrons.
I'm not quite sure how to get the first 6 digits... I will ask the next customer who raises a ticket for this information.
The customer gets no errors at all.

It almost is like the protx connection is timing out - the customer seems to be stick on checkout_confirmation.php?pay_now= page for an age, then all of a sudden is dropped back at checkout_shipping.php. Having said that, I have noticed PROTX seems to be a bit slower for me on my test transactions.

I don't think it's a server problem... Vger uses the same hosting company as me, and they are pretty good smile.gif

Many thanks for your help with this,

Harv
perfectpassion
QUOTE (harvuk @ Apr 10 2006, 07:08 AM) *
Tom,

I haven't seen any pattern to this - another custome had the same problem last night.. it's sooo frustrating watching them go round in circles.

In answer to your questions,
I know this has happened to both Mastercards and Visa Electrons.
I'm not quite sure how to get the first 6 digits... I will ask the next customer who raises a ticket for this information.
The customer gets no errors at all.

It almost is like the protx connection is timing out - the customer seems to be stick on checkout_confirmation.php?pay_now= page for an age, then all of a sudden is dropped back at checkout_shipping.php. Having said that, I have noticed PROTX seems to be a bit slower for me on my test transactions.

I don't think it's a server problem... Vger uses the same hosting company as me, and they are pretty good smile.gif

Many thanks for your help with this,

Harv


Thanks Harv,

I'm a bit puzzled by the "checkout_confirmation.php?pay_now=" bit - is this from a contribution you have as i can't find it as a standard part of osC?

Do any of the failed transactions show up as failed or invalid in the Protx admin area?

Thanks,
Tom
harvuk
QUOTE (perfectpassion @ Apr 10 2006, 10:06 AM) *
Thanks Harv,

I'm a bit puzzled by the "checkout_confirmation.php?pay_now=" bit - is this from a contribution you have as i can't find it as a standard part of osC?

Do any of the failed transactions show up as failed or invalid in the Protx admin area?

Thanks,
Tom


The contribution it may be part of is "Fast Easy Checkout". The process of passing the payment details to protx happens when you click "confirm" on "checkout_confirmation.php?paynow=". This page shows shipping costs, billing and shipping addresses and payment type details all at once. The problem has only started since I updated to protx 2.23 (i think).

None of the transactions make into into the protx admin area.

Hope this helps.

Harv
mrtahmed
I get the error:

Fatal error: Cannot redeclare tep_db_connect() (previously declared in /includes/functions/database.php:13) in /includes/functions/database.php on line 13

When I click on "CVV Number (More Info)"
Can anyone help?
perfectpassion
QUOTE (harvuk @ Apr 10 2006, 10:41 AM) *
The contribution it may be part of is "Fast Easy Checkout". The process of passing the payment details to protx happens when you click "confirm" on "checkout_confirmation.php?paynow=". This page shows shipping costs, billing and shipping addresses and payment type details all at once. The problem has only started since I updated to protx 2.23 (i think).

None of the transactions make into into the protx admin area.

Hope this helps.

Harv


Looking at the install instructions for fast easy checkout I see 2 things: firstly the bit about unregistering the payment details - have you done this for the protx variables (protx_direct_cc_type, protx_direct_cc_owner, protx_direct_cc_number, protx_direct_cc_start_month, protx_direct_cc_expires_month, protx_direct_cc_issue and protx_direct_cc_cvv)?

also in the same step it says to include the line
CODE
/// fec for get total
$paynow = tep_db_prepare_input($HTTP_GET_VARS['paynow']);
if ($paynow ==3) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, 'show_total=1&error_message=' . urlencode(ERROR_TOTAL_NOW), 'SSL'));
  }

I haven't been able to figure out what the settings for paynow are or do but I note that the line above causes a redirection from checkout_confirmation.php?paynow=3 back to checkout_shipping.php just like you are describing but not sure what the trigger for this is.

I hope this helps - let me know if anything else comes to light.



QUOTE (mrtahmed @ Apr 10 2006, 05:38 PM) *
I get the error:

Fatal error: Cannot redeclare tep_db_connect() (previously declared in /includes/functions/database.php:13) in /includes/functions/database.php on line 13

When I click on "CVV Number (More Info)"
Can anyone help?


I have just realised that the includes/languages/english/cvs_help.php file is missing from the package - i have included it and just uploaded it. Please upload the extra file and let me know if it still doesn't work.

Tom
Vger
Must have got missed out of the update, because it was there in v2.0

Vger
mrtahmed
QUOTE (perfectpassion @ Apr 10 2006, 10:30 PM) *
I have just realised that the includes/languages/english/cvs_help.php file is missing from the package - i have included it and just uploaded it. Please upload the extra file and let me know if it still doesn't work.



Done

Thanks Tom, spot on!
perfectpassion
I have just released an update to the module.

This release fixes the issue where protx was sent an incorrect total if a tax class had been assigned to shipping.

Existing users only need to update the one file (includes/modules/payment/protx_direct.php)

Let me know if any probs!

Tom
Stewart Gilray
Hi Tom,
Do I assume that I have to do a total re-install with the new version?

The version I have installed, I believe is, v2.22a.

Also, does this fix any issues with Electron cards NOT working?!

Cheers
perfectpassion
QUOTE (Stewart Gilray @ Apr 16 2006, 12:53 AM) *
Hi Tom,
Do I assume that I have to do a total re-install with the new version?

The version I have installed, I believe is, v2.22a.

Also, does this fix any issues with Electron cards NOT working?!

Cheers



Hi,

If you have v2.22a then yes you will have to do a reinstall (that is uninstall the module in admin, upload the new files, run the sql file - note this will drop your existing protx_direct table so backup, the install the module in admin).

If you have v2.23 or v2.23a then you can just replace the includes/modules/payment/protx_direct.php file alone.


It should fix the problem with electron cards as now customers simply select the card type from a drop drop list rather than relying on cc_validation.php to equate card numbers to types.

HTH,
Tom
blagger
just installed this contrib, but am getting the following error as i try to checkout:

QUOTE
Warning: Cannot modify header information - headers already sent by (output started at /hsphere/local/home/deviltro/deviltronics.com/includes/classes/protx_cc_validation.php:72) in /hsphere/local/home/deviltro/deviltronics.com/includes/functions/general.php on line 34



This is what it says on line 34 in the general.php file mentioned in the above url:

QUOTE
header('Location: ' . $url);


Could somebody please help me.
Vger
Network --> Knowledge Base --> Common Problems --> Headers already sent.

Vger
blagger
QUOTE (Vger @ Apr 24 2006, 04:42 PM) *
Network --> Knowledge Base --> Common Problems --> Headers already sent.

Vger


thank you Rhea - problem was in /includes/classes/protx_cc_validation.php
Caios
Hi where can I find this text?

"The expiry date entered for the credit card is invalid.<br>Please check the date and try again."

Its not in the language file and the <br> is showing and I need to sort it out.

Thanks
perfectpassion
QUOTE (Caios @ Apr 28 2006, 12:44 AM) *
Hi where can I find this text?

"The expiry date entered for the credit card is invalid.<br>Please check the date and try again."

Its not in the language file and the <br> is showing and I need to sort it out.

Thanks



It's in includes/languages/english.php

Look for TEXT_CCVAL_ERROR_INVALID_DATE, TEXT_CCVAL_ERROR_INVALID_NUMBER, TEXT_CCVAL_ERROR_UKNOWN_CARD.

Change them to whatever you wish.

HTH,
Tom
Caios
Nice one sorted now, thanks.
blagger
hello,

I am getting this error message:

QUOTE
Warning: str_repeat(): Second argument has to be greater than or equal to 0. in /hsphere/local/home/????????/deviltronics.com/includes/modules/payment/protx_direct.php on line 225

Warning: Cannot modify header information - headers already sent by (output started at /hsphere/local/home/????????/deviltronics.com/includes/modules/payment/protx_direct.php:225) in /hsphere/local/home/????????/deviltronics.com/includes/functions/general.php on line 34




I fixed the headers already sent problem by doing what rhea told me, but i know get the above error.

Can someone help quick as the website is live and this is the only payment method!

Line 225 in /includes/modules/payment/protx_direct.php is:

QUOTE
$order->info['cc_number'] = substr($HTTP_POST_VARS['protx_direct_cc_number'], 0, 4) . str_repeat('X', (strlen($HTTP_POST_VARS['protx_direct_cc_number']) - 8)) . substr($HTTP_POST_VARS['protx_direct_cc_number'], -4);
perfectpassion
Hi,

The error you are getting coudl only occur in the situation where the credit card number is equal to orless than 8 digits long (ASAIK that never happens all cards are longer), or perhaps if the car number isn't being passed to the protx module at all.

Does this happen with all card numbers you enter? Does it work for the test card numbers as stated in admin payment modules?

Tom
blagger
Thanks for replying.

Yes it is happening with all cards i have tried eg visa, switch, mastercard.

It is happening in both test and production.

Sometimes it will work, and sometimes it won't!

QUOTE (perfectpassion @ May 2 2006, 12:39 PM) *
Hi,

The error you are getting coudl only occur in the situation where the credit card number is equal to orless than 8 digits long (ASAIK that never happens all cards are longer), or perhaps if the car number isn't being passed to the protx module at all.

Does this happen with all card numbers you enter? Does it work for the test card numbers as stated in admin payment modules?

Tom
blagger
QUOTE (blagger @ May 2 2006, 12:52 PM) *
Thanks for replying.

Yes it is happening with all cards i have tried eg visa, switch, mastercard.

It is happening in both test and production.

Sometimes it will work, and sometimes it won't!


Ok, when i mean sometimes it will work and sometimes it won't, that is what it is doing:

First try: will work

second try : won't work (above error appears)

third try: will work

fourth try : won't work (above error appears)


The above error appears every second time round, so it may be PROTX.
blagger
If i do not enter card details then i get the normal errors saying enter your details.

but still the problem exists! serious help required.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.