Jump to content


Corporate Sponsors


Latest News: (loading..)

PayPal Express Checkout and Website Payments Pro (Official Payment Module)


56 replies to this topic

#1 PayPal_AnthonyH

  • Community Member
  • 11 posts
  • Real Name:Anthony H

Posted 27 January 2010, 14:28

Please use this thread to post VERIFIED bug reports and feature requests only on the official PayPal Express Checkout and Website Payments Pro module for osCommerce 2.2 RC2a. This thread is monitored, however specific configuration support requests should be either posted as a New Topic in the PayPal forum or directed to PayPal Merchant Technical Support at https://www.paypal.com/mts

Quote

The official osCommerce payment module for PayPal offers full integration with Express Checkout and Website Payments Pro via the PayPal API. This Add-On overwrites and upgrades the existing PayPal Express Checkout and Website Payments Pro modules included in osCommerce v2.2 RC2A by default.

Express Checkout allows you to increase sales through a fast and easy checkout experience; Website Payments Pro allows you to get an internet merchant account and payment gateway all-in-one solution at a low cost.

The updated payment module, designed for osCommerce Online Merchant v2.2 RC2a, and includes many new features that allow you to accept PayPal payments more easily.

- Website Payments Pro for US, UK, and Canada
- Express Checkout
- Recurring Payments for Website Payments Pro and Express Checkout
- Maestro/Solo for UK
- 3D Secure for UK
- Fraud Management Filters

Follow the instructions (INSTALLING.html inside the download) to install and configure your web store particularly if you have already customized your osCommerce store.

Although there are several unofficial PayPal modules for osCommerce, PayPal does not provide technical support for these versions.

This module is also posted on the PayPal X Developer Network website at https://www.x.com/docs/DOC-1508

A note for UK merchants: The Add-On is designed for PayPal merchants using Website Payments Pro and/or Express Checkout with API Signatures, this includes UK Pro merchants with accounts created after September 2008. It is not for use by merchants using Website Payments Pro (Payflow Edition) or Payflow Pro.

Depending on when your UK Pro account was created, this module may be compatible by switching to using API Signatures instead of the Partner, Merchant ID, Username and Password you currently use.


#2 johnnybebad

  • Community Member
  • 672 posts
  • Real Name:Johnny

Posted 06 February 2010, 17:09

Hi Anthony, paypal sre threating to deactivate ipns on my account as the file rp_ipn.php was excluded from the official paypal 3d secure module.
Can you please get this file posted as an update or something soon before I get ipns taken away from my account.
Thanks
Getting better with mods but no programmer am I.

#3 PayPal_AnthonyH

  • Community Member
  • 11 posts
  • Real Name:Anthony H

Posted 08 February 2010, 17:40

@johnnybebad, this will be posted in the next release of the module. It was unfortunately missed in the 177 release, the release is currently in testing and should be available today or tomorrow - I will update this thread when it is available for upload.

View Postjohnnybebad, on 06 February 2010, 17:09, said:

Hi Anthony, paypal sre threating to deactivate ipns on my account as the file rp_ipn.php was excluded from the official paypal 3d secure module.
Can you please get this file posted as an update or something soon before I get ipns taken away from my account.
Thanks


#4 PayPal_AnthonyH

  • Community Member
  • 11 posts
  • Real Name:Anthony H

Posted 08 February 2010, 18:30

@johnnybebad this is now released and available at: http://addons.oscommerce.com/info/7184


View Postjohnnybebad, on 06 February 2010, 17:09, said:

Hi Anthony, paypal sre threating to deactivate ipns on my account as the file rp_ipn.php was excluded from the official paypal 3d secure module.
Can you please get this file posted as an update or something soon before I get ipns taken away from my account.
Thanks


#5 johnnybebad

  • Community Member
  • 672 posts
  • Real Name:Johnny

Posted 08 February 2010, 19:57

View PostPayPal_AnthonyH, on 08 February 2010, 18:30, said:

@johnnybebad this is now released and available at: http://addons.oscommerce.com/info/7184


Hi,

it appears theres something a drift with this, I am getting an encryption warning when I try and extract the 180 build.

Can you advise please.

Thanks
Getting better with mods but no programmer am I.

#6 PayPal_AnthonyH

  • Community Member
  • 11 posts
  • Real Name:Anthony H

Posted 09 February 2010, 11:39

@johnnybebad I have zipped the file again and uploaded. Let me know if the 9th February version works: http://addons.oscommerce.com/info/7184

Regards,
Anthony
PayPal (UK)

View Postjohnnybebad, on 08 February 2010, 19:57, said:

Hi,

it appears theres something a drift with this, I am getting an encryption warning when I try and extract the 180 build.

Can you advise please.

Thanks


#7 johnnybebad

  • Community Member
  • 672 posts
  • Real Name:Johnny

Posted 10 February 2010, 17:16

no errors showing appears to be working fine Thanks
Getting better with mods but no programmer am I.

#8 Jonnoa2

  • Community Member
  • 34 posts
  • Real Name:Jonnnoa

Posted 05 March 2010, 10:24

I have contacted PayPal's merchant and also Cardinal who both can not offer solutions to my problem, nor can a very experienced PHP programmer can fix this without a lot of time and cost to me.

Having had this mod installed and configured by an OScommerce programmer who is very experienced with php, We are having the following major problems with mod of the 8 Feb 2010 build 180. I believe it was created by a person called Anthony H who is an employed by PayPal, according to the oscommerce forum and link to the mod.
I shall be brief with the details at this time with the core problems I am having.

1. PayPal Express
NOT TAKING POST CHARGE
When you place and order using PayPal express you need to confirm the order on my site (this does add the postage cost) Then it goes off to PayPal when you enter your PapPal details and confirm, where it then takes you back to my store where there is then no postage charge. If you then confirm the order, and check payment received in PayPal you only receive the goods amount with out the postage.

2.Website Payments pro with 3D Secure Buyer Authentication via Cardinal Commerce (currently UK merchants only).
CARDINAL 3D SECURE NOT WORKING
This mod does not link into Cardinal Authentication it just acts as if it is not there and makes payment at would without it.
Cardinal have had a look at this as have stated that it is all configured correctly on the mod but it is not seeing there site.
Last email from them
It is tough because there is no osCommerce support. We have checked the module settings and it looked to be setup properly. I am not aware of the issue you were getting. There maybe a solution in the osCommerce forums.

Can anyone please help we have spent over 2 weeks trying to get this working and it has cost a lot of money to employ the PHP guy to work on this for us.

#9 PayPal_Tin

  • Community Member
  • 11 posts
  • Real Name:Tin Cheung

Posted 05 March 2010, 10:44

View PostJonnoa2, on 05 March 2010, 10:24, said:

1. PayPal Express
NOT TAKING POST CHARGE
When you place and order using PayPal express you need to confirm the order on my site (this does add the postage cost) Then it goes off to PayPal when you enter your PapPal details and confirm, where it then takes you back to my store where there is then no postage charge. If you then confirm the order, and check payment received in PayPal you only receive the goods amount with out the postage.

2.Website Payments pro with 3D Secure Buyer Authentication via Cardinal Commerce (currently UK merchants only).
CARDINAL 3D SECURE NOT WORKING
This mod does not link into Cardinal Authentication it just acts as if it is not there and makes payment at would without it.
Cardinal have had a look at this as have stated that it is all configured correctly on the mod but it is not seeing there site.

Hi Jonnoa,

Sorry to hear of your problems.

We are aware of some issues with the 3D-Secure authentication code within the 180 module, and I am just doing some final sanity checks before I release a new 181 modules, which I aim to be some time today.

I have not come across the issue with the shipping charge before, so this is something that I will need to investigate - I'll provide an update in due course.

Thanks,

Tin

#10 PayPal_Tin

  • Community Member
  • 11 posts
  • Real Name:Tin Cheung

Posted 05 March 2010, 16:14

Jonnoa - we have not discovered any issue with our modules that will affect the final price of the transaction. Can you please verify that you have configured your shipping module properly?

There may also be a configuration issue affecting your 3D-Secure experience as well, so please double check your settings.

As a general update, please download and install the 181 "LITE" package, which contains fixes for some known issues with the recently implemented 3D-Secure Authentication mechanism.

You can find this module here: http://addons.oscommerce.com/info/7280

Thanks,

Tin

#11 trampoline89

  • Community Member
  • 9 posts
  • Real Name:Rob

Posted 09 March 2010, 23:24

HI,
I have now installed this twice, thinking I got something wrong…
However all of the site LOOKS Fine, I can configure the plugin in admin, however when you get to Chheckout_payment.php paypal does not appear as a method of payment ?
Odd I can't find any error in my coding, why won't it appear ?

#12 PayPal_Tin

  • Community Member
  • 11 posts
  • Real Name:Tin Cheung

Posted 10 March 2010, 13:27

View Posttrampoline89, on 09 March 2010, 23:24, said:

HI,
I have now installed this twice, thinking I got something wrong…
However all of the site LOOKS Fine, I can configure the plugin in admin, however when you get to Chheckout_payment.php paypal does not appear as a method of payment ?
Odd I can't find any error in my coding, why won't it appear ?

Hi Rob,

Apologies for the delayed response.

Can you please confirm what kind of base you have been working of? I.e. did you have the full 180 (or previous) modules deployed before attempting the 181 LITE install?

Thanks,

Tin

#13 trampoline89

  • Community Member
  • 9 posts
  • Real Name:Rob

Posted 10 March 2010, 15:42

View PostPayPal_Tin, on 10 March 2010, 13:27, said:

Hi Rob,

Apologies for the delayed response.

Can you please confirm what kind of base you have been working of? I.e. did you have the full 180 (or previous) modules deployed before attempting the 181 LITE install?

Thanks,

Tin
My apologies all sorted now...

#14 Benjjj6

  • Community Member
  • 470 posts
  • Real Name:Ben
  • Gender:Male

Posted 24 March 2010, 16:08

Hi

Just a couple of questions,

Do I need a Cardinal Commerce account to use this? What exactly is that for?

What are the differences between this module and http://addons.oscommerce.com/info/7280
Is it just the addition of Express checkout and maestro & solo cards?

Are there plans for installation instructions which indicate exactly what code needs to be added/removed from shops which are already heavily modified?


Thanks,
Ben

#15 PayPal_Tin

  • Community Member
  • 11 posts
  • Real Name:Tin Cheung

Posted 24 March 2010, 16:14

View PostBenjjj6, on 24 March 2010, 16:08, said:

Hi

Just a couple of questions,

Do I need a Cardinal Commerce account to use this? What exactly is that for?

What are the differences between this module and http://addons.oscommerce.com/info/7280
Is it just the addition of Express checkout and maestro & solo cards?

Are there plans for installation instructions which indicate exactly what code needs to be added/removed from shops which are already heavily modified?


Thanks,
Ben

Hi Ben,

The module that you linked to is the latest code for direct credit processing (via PayPal) only - it basically contains some fixes to the previous "full" module release. It does not make any changes to Express Checkout.

You don't need a Cardinal Commerce account unless you wish to use 3D Secure Authentication (which is mandatory for Maestro processing). You also don't need this module unless you have a PayPal "Pro" account, and wish to process direct card payments.

Thanks,

Tin

#16 Benjjj6

  • Community Member
  • 470 posts
  • Real Name:Ben
  • Gender:Male

Posted 24 March 2010, 16:38

Hi Tin

Thanks for your reply.

So I only need that additional fix if I wish to process maestro cards, and I assume 3D secure can help act against chargebacks etc.

I think I heard somewhere that the full module does not accept American Express, is this correct?

Do you have this full module working with any discount or coupon/voucher contributions?


Thanks,
Ben

#17 aftabn10

  • Community Member
  • 186 posts
  • Real Name:Aftab
  • Gender:Male
  • Location:Manchester

Posted 27 March 2010, 01:03

View PostPayPal_AnthonyH, on 27 January 2010, 14:28, said:

Please use this thread to post VERIFIED bug reports and feature requests only on the official PayPal Express Checkout and Website Payments Pro module for osCommerce 2.2 RC2a. This thread is monitored, however specific configuration support requests should be either posted as a New Topic in the PayPal forum or directed to PayPal Merchant Technical Support at https://www.paypal.com/mts

Anthony, thanks for this contribution. I was wondering if you had a document that showed me what extra code was added to each page in order to get this contribution up and running. The reason being that I have version rc2a but I have made a quite a few modifications, which makes it a bit difficult to work out what code needs to be added.

Hope you can help, thanks in advance.

#18 PayPal_Tin

  • Community Member
  • 11 posts
  • Real Name:Tin Cheung

Posted 30 March 2010, 12:44

View PostBenjjj6, on 24 March 2010, 16:38, said:

Hi Tin

Thanks for your reply.

So I only need that additional fix if I wish to process maestro cards, and I assume 3D secure can help act against chargebacks etc.

I think I heard somewhere that the full module does not accept American Express, is this correct?

Do you have this full module working with any discount or coupon/voucher contributions?


Thanks,
Ben

Hi Ben,

Apologies for the delayed response.

In a manner of speaking, yes, the 181 LITE module will fix things in 180, which will allow you to use 3D-Secure with PayPal for direct card payments - this applies to ALL cards, but at the moment, Maestro is the only mandatory card.

You can still accept Maestro via the PayPal Express Checkout and Standard flows, without worrying about 3D Secure.

In regards to AMEX - UK PayPal Pro currently does NOT support AMEX for direct card payments, but it IS possible to pay with AMEX via the PayPal EC and Standard flows.

aftabn10 - we are working on some better documentation and a generally easier installation method, so please bear with us.

Thanks,

Tin

#19 dcrider1

  • Community Member
  • 124 posts
  • Real Name:danny

Posted 08 April 2010, 18:27

i have a template, i need some assistance with code on catalog/checkout_confirmation.php.

the contribution code is
<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>
    <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
    </table></td>
<!-- body_text //-->
    <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
      <tr>
        <td>
<?php
  if (isset($$payment->form_action_url)) {
    $form_action_url = $$payment->form_action_url;
  } else {
    $form_action_url = tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL');
  }

  echo tep_draw_form('checkout_confirmation', $form_action_url, 'post');
?>
        <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_confirmation.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>
      <tr>
        <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
          <tr class="infoBoxContents">
<?php
  if ($sendto != false) {
?>
            <td width="30%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
              <tr>
                <td class="main"><?php echo '<b>' . HEADING_DELIVERY_ADDRESS . '</b> <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br>'); ?></td>
              </tr>
<?php
    if ($order->info['shipping_method']) {
?>
              <tr>
                <td class="main"><?php echo '<b>' . HEADING_SHIPPING_METHOD . '</b> <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
              </tr>
              <tr>
                <td class="main"><?php echo $order->info['shipping_method']; ?></td>
              </tr>
<?php
    }
?>
            </table></td>
<?php
  }
?>
            <td width="<?php echo (($sendto != false) ? '70%' : '100%'); ?>" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
  if (sizeof($order->info['tax_groups']) > 1) {
?>
                  <tr>
                    <td class="main" colspan="2"><?php echo '<b>' . HEADING_PRODUCTS . '</b> <a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
                    <td class="smallText" align="right"><b><?php echo HEADING_TAX; ?></b></td>
                    <td class="smallText" align="right"><b><?php echo HEADING_TOTAL; ?></b></td>
                  </tr>
<?php
  } else {
?>
                  <tr>
                    <td class="main" colspan="3"><?php echo '<b>' . HEADING_PRODUCTS . '</b> <a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
                  </tr>
<?php
  }

  for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
    echo '          <tr>' . "\n" .
         '            <td class="main" align="right" valign="top" width="30">' . $order->products[$i]['qty'] . '&nbsp;x</td>' . "\n" .
         '            <td class="main" valign="top">' . $order->products[$i]['name'];

    if (STOCK_CHECK == 'true') {
      echo tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty']);
    }
    /**
     * START
     * PayPal Recurring Payments
     *
     * adding recurrig payments product information if it exists
     */
    if(count($order->products[$i]['rp'])>0){
        include_once(DIR_WS_CLASSES . '/paypal_rp_product_info.php');
        $rpPprice = $currencies->display_price($order->products[$i]['rp']['amt'], tep_get_tax_rate($order->products[$i]['tax_class_id']));
        $rpPinfo = new paypal_rp_product_info($order->products[$i], $order->products[$i]['rp'], $rpPprice);
        $rpPInfoArr = $rpPinfo->getProductInfoFull();
        if(array_key_exists('trial', $rpPInfoArr)){
            print '<br><nobr><small>&nbsp;<i>' . $rpPInfoArr['trial'] . '</i></small></nobr>';
        }
        print '<br><nobr><small>&nbsp;<i>' . $rpPInfoArr['normal'] . '</i></small></nobr>';
    }
    /**
     * END
     * PayPal Recurring Payments
     */
    if ( (isset($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0) ) {
      for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
        echo '<br><nobr><small>&nbsp;<i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'] . '</i></small></nobr>';
      }
    }

    echo '</td>' . "\n";

    if (sizeof($order->info['tax_groups']) > 1) echo '            <td class="main" valign="top" align="right">' . tep_display_tax_value($order->products[$i]['tax']) . '%</td>' . "\n";

    echo '            <td class="main" align="right" valign="top">' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . '</td>' . "\n" .
         '          </tr>' . "\n";
  }

the code its trying to replace in my original file is
<body style="margin:0px">
<?php 
$inc_file = basename(__FILE__); 
require(DIR_WS_INCLUDES .'theme/main_theme.php');

i know the "theme" part is in relation to my template, can anyone please advise as to how i should change this code?

Thanks in advance!

#20 dcrider1

  • Community Member
  • 124 posts
  • Real Name:danny

Posted 08 April 2010, 18:34

i was on a roll comparing and changing files, now two in a row.

along with the above, this is #2 -- catalog/checkout_payment.php

contribution code
<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>
    <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
    </table></td>
<!-- 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();
    /**
     * START
     * PayPal Recurring Payments
     *
     * verify that the modules are allowed for this checkout
     */
    if($allowedCheckoutModuleArr){
        foreach ($selection as $key => $arr){
            if(!in_array($arr['id'], $allowedCheckoutModuleArr)){
                unset($selection[$key]);
            }
        }
    }
    $selection = array_values($selection);
    /**
     * END
     * PayPal Recurring Payments
     */
  if (sizeof($selection) > 1) {

my original code, that it wants to replace
<body style="margin:0px">
<?php 
$inc_file = basename(__FILE__); 
require(DIR_WS_INCLUDES .'theme/main_theme.php');

Thanks again!!