Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

PayPal WPP Direct Payments & Express Checkout Support


dynamoeffects

Recommended Posts

Interesting. It should be the other way around. I'll take a look at the code a little later.

Also - should osCommerce be passing the shipping address to PayPal - when I look up a credit or debit transaction in my PayPal account the shipping address says "No Address Provided".

 

For express checkout, the shipping address is sent from PayPal. For Direct Payment, nothing other than the order total is sent to paypal, which is probably why you get that error. Not really anything worth taking the time to add.

You're welcome. Hope it doesn't give you much trouble.

 

A transaction ID is handy to get for both payment methods - credit/debit card or PayPal account.

 

For one thing it makes looking up the transaction in the PayPal account (or in data downloaded from PayPal for later manipulation / reporting) accurate and easy - especially for repeat customers where using, for example, lastname for search at PayPal offers multiple results that must be scrutinized closely via repeated individual transaction lookups from the results page.

 

When correlating the osCommerce order db entries or exported data to the online or downloaded PayPal data the Transaction ID would provide an ideal common field between the two sets of data for many purposes.

 

Having the shipping address passed to PayPal for Direct Payment credit/debit card transactions is nice when downloading PayPal records for manipulation in my self-made record-keeping MS Access db (and also I am sure would be useful for anyone who uses downloaded PayPal data for Quickbooks or similiar accounting software).

 

Shipping address being passed to PayPal (if even possible?) would be also useful if doing things like, for example and not limited to, reporting geographic trends - being able to query the PayPal info against the osCommerce order data by a common field like state would be excellent in my case as I run two (for now) sites as well as sell on eBay auctions / fixed price and an eBay store - all using the same PayPal account to receive payments.

 

There is no such thing as having too much information to play with.

 

The points above are more for tracking and reporting uses - perhaps outside the original scope of your valuable code - but useful.

 

For the main intended purpose of removing the PayPal seam and proefessionalizing payment processing it is perfect.

 

Passing the Transaction ID for both methods of payment and inserting the shipping address at PayPal for credit / debit card orders would be a valuable bonus.

 

I will calculate the increase in sales over the next weeks or perhaps a month due to your contribution and in the future making a decent donation based on that calculation.

 

Thanks again.

Link to comment
Share on other sites

I know it is stated that this contrib and PWA (Payment Without Account) don't match well together. Does anyone have any tips or specific instructions on how to merge this change in with a store already configured with PWA? I started looking at the integration of this change, and I saw at least a couple places where some common code is touched with both changes. For example, in login.php, the first change in there for the WPP contrib seems to conflict with the PWA changes.

 

Should I try to remove PWA first? Has anyone successfully merged the WPP change in with a store that already had PWA?

 

Any suggestions or past experiences would be appreciated.

 

Thanks,

Sean

-----------------

Sean Johnson

Link to comment
Share on other sites

Pardon the very newbie question, but I am having a problem that cropped up after installing this module, and am having no luck figuring out what's going on.

 

Basically, checkout seems to work fine until I get to catalog/checkout_process.php, at which point it just shows a blank page. No error, no nothin', just a blank page. The same is also true of catalog/ec_process.php. I tried increasing the timeout, hoping that might help, but it didn't.

 

Like I said, I am a complete newbie to all of this, just trying to stumble my way through, and any direction would be very appreciated.

 

Thank you!

 

I am having the exact same problem. I've tried removing and re-installing oscommerce and the module a few times now, but every time I get the blank pages. If anyone has any ideas, I would grealty appreciate them.

 

Thanks everyone.

 

-Nathan

Link to comment
Share on other sites

seanjohnson, go to page 3 or 4 and someone modified their installation to work with PWA. He'd be the person to ask.

 

Nathan, did you install the pear modules and set the path in the module's admin?

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

Hi, another problem.... My Express Checkout button is returning error 10417. I know this is not an issue of the module so I have contacted Paypal for help. They asked me if I can provide my logs of SOAP requests and responses. They are looking for the XML documents that are sent to PayPal and the XML documents returns to my server in the process of performing the Express Checkout. There should be three API calls, each with its own request and response document.

 

In addition, they asked what PayPal SDK, if any, is the module using?

 

Any help on how to retrieve or turn on logging of SOAP requests and responses will be greatly appreciated!!

 

Ken

 

 

Sorry, this is slow in coming, Ken. Here's what you can do:

 

Normally, your SOAP logging is done in the server's /tmp/ file, but if you are on a shared server (like myself) you will probably not have access to this file. This is a workaround.

 

1. Goto this file: /home/xxxx/public_html/catalog/pear/Services/PayPal/conf/paypal-sdk.php.dist

 

2. Rename file to: paypal-sdk.php (just drop the .dist so that it is a .php file now)

 

3. Change this line: $__PP_CONFIG['log_level'] = PEAR_LOG_INFO; (INFO could be ERR or DEBUG) to this: $__PP_CONFIG['log_level'] = PEAR_LOG_DEBUG;

 

4. Change this: $__PP_CONFIG['log_dir'] = '/tmp/'; to the path of the folder you want the logs written to. I used: $__PP_CONFIG['log_dir'] = '/home/xxxxxxx/public_html/catalog/soap_log/';

 

5. If you get any errors, you can check that folder for the logs and send them to the Merchant Tech Support team member that is helping you.

 

Hope this helps!

~Mike~

Link to comment
Share on other sites

seanjohnson, go to page 3 or 4 and someone modified their installation to work with PWA. He'd be the person to ask.

 

Nathan, did you install the pear modules and set the path in the module's admin?

 

I uploaded the pear modules and specified the path. Tried absolute and http paths. Also tried leaving it blank. Also looked at the phpinfo screen and saw that pear is installed on the server. Tried the shared server path and still not working.

 

I will admit that I am in no way an expert, so I could have missed something.

 

Thank you for the quick response. I truley appreciate the help thus far.

Link to comment
Share on other sites

I know it is stated that this contrib and PWA (Payment Without Account) don't match well together. Does anyone have any tips or specific instructions on how to merge this change in with a store already configured with PWA? I started looking at the integration of this change, and I saw at least a couple places where some common code is touched with both changes. For example, in login.php, the first change in there for the WPP contrib seems to conflict with the PWA changes.

 

Should I try to remove PWA first? Has anyone successfully merged the WPP change in with a store that already had PWA?

 

Any suggestions or past experiences would be appreciated.

 

Thanks,

Sean

 

So far, I've done nothing with header.php. For the changes recommended for login.php, the actual code for the display I put directly above

 

<?php
if (PWA_ON == 'false') {
require(DIR_WS_INCLUDES . FILENAME_PWA_ACC_LOGIN);
} else {
require(DIR_WS_INCLUDES . FILENAME_PWA_PWA_LOGIN);
}
?>

 

I'm currently testing it, but the problems I'm having don't seem to be related to PWA.

 

 

Two questions-

 

Where is PEAR.php?

 

and

 

What does this mean:

 

Fatal error: Undefined class name 'services_paypal' in /var/www/html/pear/Services/PayPal/Profile.php on line 76

 

Gracias

 

I am having the exact same problem. I've tried removing and re-installing oscommerce and the module a few times now, but every time I get the blank pages. If anyone has any ideas, I would grealty appreciate them.

 

Thanks everyone.

 

-Nathan

 

 

I've seen this before with a similar contribution that also used pear- I finally got so frustrated I went nuclear on it and started over from scratch. That probably doesn't help you much or make you feel any better, but it's something.

 

Good luck.

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

Two questions-

 

Where is PEAR.php?

 

and

 

What does this mean:

 

 

Nevermind for now on question #2, I reuploaded the services directory and all is well.

 

But what is up with PEAR.php? That's a file that's supposed to be in the pear folder, right?

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

Sweet holy mother of cow-

 

IT WORKS

 

I've cursed the name of PayPal before, and I may yet do it again, but today, today PayPal shines brightest in my sky.

 

And Brian too.

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

Never mind this post, I'm dumb.

 

All hail Brian Burton!

Edited by djmonkey1

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

I know it is stated that this contrib and PWA (Payment Without Account) don't match well together. Does anyone have any tips or specific instructions on how to merge this change in with a store already configured with PWA? I started looking at the integration of this change, and I saw at least a couple places where some common code is touched with both changes. For example, in login.php, the first change in there for the WPP contrib seems to conflict with the PWA changes.

 

Should I try to remove PWA first? Has anyone successfully merged the WPP change in with a store that already had PWA?

 

Any suggestions or past experiences would be appreciated.

 

Thanks,

Sean

 

Sean,

There are a couple of places that could cause problems. I implemented this with WPP 0.2 and PWA 0.82 and did a lot of tweaking. I found that to get everything working correctly, I had to move the Express Checkout button code in login.php (lines 249-275) to includes/login_pwa.php. This is because login_pwa.php is a single <td>[stuff]</td> block, and the EC button code needs to be the first row inside that block in the enclosing table.

 

The other area I had to modify was the code that deletes an existing account if one is found. Per PayPal rules, WPP deletes the account upon successful processing of the payment (checkout_success.php lines 137-162). PWA leaves the account intact and deletes it in create_account.php if the user tries to check out again with the same email address. WPP does this as well, to handle the case of an abandoned checkout, in create_account.php lines 96-113, in pretty much the same fashion as PWA. What I did was to change the code to delete an existing account if it has either the PWA or the EC flag set. This means that one contribution can delete an account created by the other, but that shouldn't be a problem. WPP would only leave an account in the case of an abandoned cart after the checkout process had begun, so you wouldn't ordinarily see it. EC will delete an existing PWA account, but I don't expect that to be a problem. I used the WPP code and made the following change in line 101 of the WPP version of create_account.php:

 

From:
	if ($check_email['ec'] == '1') {
To:
	if ($check_email['ec'] == '1' || $check_email['pwa'] == '1') {

 

Those were the main areas that I found to be in conflict, though there might be some others. I made some other changes to my checkout_payment page to support inclusion of icons for the payment methods, similar to what is done in checkout_shipping. This required some changes to the paypal_wpp module as well.

 

I'll probably implement WPP 0.4 over the weekend. You're welcome to explore my site at http://www.glensgarage.com to see the results.

 

--Glen

Link to comment
Share on other sites

Ok. i changed the timeout in http.php to 60 and that fixed it.

 

Thanks for the help dyna & bfcase, you guys are a big help!

 

OK Still no joy on this one.

 

It was working except for the credit card bit not connecting. started from scratch.

 

All is working on cash check out. installed the wpp 4 have all pear all installed wpp.crt installed

ssl is via Cacert

 

I get errors on check out if i use the wrong pw with the pp crt so I know it sees that correctly.

I have also redownloaded the crt file from pp

 

getting connection error on express checkout button. That was working last install not now. It was forwarding to the login screen to PalPal.

 

I did adjust the timeout to 60 from 4

 

Current error is

 

An error occured when we tried to contact PayPal's servers.

 

()

 

Not sure what this means

 

FYI this is when I try a live connection

Link to comment
Share on other sites

Current error is

 

An error occured when we tried to contact PayPal's servers.

 

()

 

Not sure what this means

 

FYI this is when I try a live connection

 

Are you using a live certificate? Sandbox and live certificates are not interchangeable. I seem to recall getting this error when I didn't have a certificate loaded.

 

--Glen

Link to comment
Share on other sites

OK i must have read this in the fine print some where.

 

I had deleted all of the pay ment options including paypal installed wpp .4 and was getting connection to server error. I activated Paypal as well as the wpp and all is working.

 

 

 

Last question is. I only have one credit card and its attached to my paypal account do I have to log into paypal to use it. If so that would explain why its being Declined.

Link to comment
Share on other sites

Hello,

I have installed this contribution on my store but I have a small problem.

Because almost all of my pages are highly modified, I had to edit all the pages in order to install this contribution and I think that I did something wrong but I can't figure it out.

Here is my problem:

When customers clicks on PayPal express checkout button in the shipping page they get the following error message:

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

Can anybody please help me to fix this problem?

Thanks

Regards,

Link to comment
Share on other sites

Glen-

 

I'm not sure that I'm following you here. Are you saying that the only modification that yo've made for PWA is this:

 

I used the WPP code and made the following change in line 101 of the WPP version of create_account.php:

 

From:
	if ($check_email['ec'] == '1') {
To:
	if ($check_email['ec'] == '1' || $check_email['pwa'] == '1') {

 

--Glen

 

 

Last question is. I only have one credit card and its attached to my paypal account do I have to log into paypal to use it. If so that would explain why its being Declined.

 

I would say so, yes- something like this was happening to me. You can call PayPal and ask them about it, since it's your account they'll tell you exactly why the card was declined.

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Link to comment
Share on other sites

All hail Brian Burton!

 

When I'm ruler of the world, I'll remember to think kindly of you. :) Thanks for the generosity.

 

Looks like you guys have got it covered. Doesn't seem like there are any new bugs, but I'm going to modify the error reporting function again to include some more return messages. I'm also going to add a function to email the store owner a var_dump of the returned message so we can debug this crap a little easier.

 

Dai santi, there's apparently no such thing as "finished."

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

Hi,

First of all let me thank you for this great contribution.

I have a problem and a question.

My question is, when a customer uses Express checkout for the first time and confirms the address and payment method on PayPal web site then returned to our store, if they change their mind and decide to pay with another payment method, they will cancel (i.e. log out) and then log in again. This time it will not show the express button on the shipping page and it will take them directly to shipping_confirmation to check out. It looks like it is saving the previous information. Is this is how it suppose to be, or may be I did something wrong during installation? Could someone please explain this to me?

 

And my problem is that when I want to use a credit card, I'm getting the following error all the time:

The credit card information you entered contains an error. Please check it and try again.

I have tried 2-3 different cards, but all with same error. Any idea where is the problem?

(P.S. I have installed this contribution on a test shop by replacing all the files and everything was working great even the credit card part. But because my live store is heavily modified, I had to edit all pages manually and now I'm getting that error on credit cards. That's why I think I did something wrong but I really don't know what).

 

Thanks again for the great contribution and all the support and help.

Regards,

Link to comment
Share on other sites

Hmm, looks like I should make it so that if a user in a temporary account manages to log out manually, it'll delete the account as well.

 

Yeah, I realized that the user has no way of changing their mind once they start the EC process. I think I'll add a box on each of the checkout pages that says, "You're checking out with Express Checkout. If you want to use another form of payment, click here" with a link that restarts the checkout process.

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

Hmm, looks like I should make it so that if a user in a temporary account manages to log out manually, it'll delete the account as well.

 

Yeah, I realized that the user has no way of changing their mind once they start the EC process. I think I'll add a box on each of the checkout pages that says, "You're checking out with Express Checkout. If you want to use another form of payment, click here" with a link that restarts the checkout process.

That would be great.

Do you have any idea how to fix my credit card problem?

Thanks for prompt reply.

Regards,

Link to comment
Share on other sites

Have you modified your cc_validation.php class? As I haven't heard this problem from anyone else, I'm willing to bet one of your modified scripts got FUBAR'd.

Edited by dynamoeffects

Please use the forums for support! I am happy to help you here, but I am unable to offer free technical support over instant messenger or e-mail.

Link to comment
Share on other sites

Have you modified your cc_validation.php class? As I haven't heard this problem from anyone else, I'm willing to bet one of your modified scripts got FUBAR'd.

No, I have never modified the cc_validation.php.

Here is my checkout_payment.php code. May be there is something wrong in here: (I have State selector and CCGV contributions installed)

<?php
/*
 $Id: checkout_payment.php,v 1.2.7 2004/01/01 12:03:27 Strider Exp $
 $Id: checkout_payment.php,v 1.113 2003/07/24 23:03:27 Strider Exp $
 $Id: checkout_payment.php,v 1.113 2003/06/29 23:03:27 hpdl Exp $
 $Id: checkout_payment.php,v 1.6.2.3 2003/05/10 20:12:14 wilt 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'));
}
 }

// if we have been here before and are coming back get rid of the credit covers variable
// #################### Added CGV ######################
if(tep_session_is_registered('credit_covers')) tep_session_unregister('credit_covers');  // CCGV Contribution
// #################### End Added CGV ######################


// 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');
}
 }

//---PayPal WPP Modification START ---//
 if (tep_paypal_wpp_enabled()) {
$ec_enabled = true;
 } else {
$ec_enabled = false;
 }

 if ($ec_enabled) {
if (tep_session_is_registered('paypal_error')) {
  $checkout_login = true;
  $messageStack->add('payment', $paypal_error);
  tep_session_unregister('paypal_error');
}
 }
//---PayPal WPP Modification END ---//
 require(DIR_WS_CLASSES . 'order.php');
 $order = new order;
// #################### Added CGV ######################
 require(DIR_WS_CLASSES . 'order_total.php');//ICW ADDED FOR CREDIT CLASS SYSTEM
 $order_total_modules = new order_total;//ICW ADDED FOR CREDIT CLASS SYSTEM
 $order_total_modules->clear_posts(); // ADDED FOR CREDIT CLASS SYSTEM by Rigadin in v5.13
// #################### End Added CGV ######################

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

 $total_weight = $cart->show_weight();
 $total_count = $cart->count_contents();
// #################### Added CGV ######################
 $total_count = $cart->count_contents_virtual(); //ICW ADDED FOR CREDIT CLASS SYSTEM
// #################### End Added CGV ######################

// 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;
<?php // #################### Added CGV ###################### ?>
var submitter = null;
function submitFunction() {
  submitter = 1;
  }
<?php // #################### End Added CGV ###################### ?>
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>
<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>
<? //---PayPal WPP Modification START ---// ?>
<?php
 if ($ec_enabled && $messageStack->size('payment') > 0) {
?>
  <tr>
	<td><?php echo $messageStack->output('payment'); ?></td>
  </tr>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
<?php
 }
?>
<? //---PayPal WPP Modification END ---// ?>
<?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
 }
?>

<? //---PayPal WPP Modification START ---//-- ?>
<?php	if (!$ec_enabled || (!tep_session_is_registered('paypal_ec_token') && !tep_session_is_registered('paypal_ec_payer_id') && !tep_session_is_registered('paypal_ec_payer_info'))) { ?>
<? //---PayPal WPP Modification END ---//-- ?>
  <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 {

if ( (!$payment) && ($i==0) ) {

 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'], $i==0);
} 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>
<? //---PayPal WPP Modification START ---//-- ?>
<?php } ?>
<? //---PayPal WPP Modification END ---//-- ?>
  <tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  </tr>
<?php // #################### Added CGV ###################### 
 echo $order_total_modules->credit_selection();//ICW ADDED FOR CREDIT CLASS SYSTEM
// #################### End Added CGV ###################### ?>
  <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'); ?>

Regards,

Link to comment
Share on other sites

Have you modified your cc_validation.php class? As I haven't heard this problem from anyone else, I'm willing to bet one of your modified scripts got FUBAR'd.

You know what?

You are a genius and I feel stupid.

You were right. I have modified the cc_validation.php before but I totally forgot about it.

I have modified that file in order to add the CVV to the regular credit card payment module.

Now that I have changed that file, everything is working like a piece a cake.

 

THANK YOU THANK YOU AND THANK YOU again.

:thumbsup: :thumbsup: :thumbsup:

Regards,

Link to comment
Share on other sites

Glen-

 

I'm not sure that I'm following you here. Are you saying that the only modification that yo've made for PWA is this:

 

Of course not. The statement was taken out of context. I said that there were two points (that I recall) where PWA and WPP modified the same block of milestone code. The quoted change was what I used to provide both functionalities simultaneously. All other WPP modifications were applied, either as drop-in replacements for the original file, or by copying the WPP modification into the existing file that I had modified previously for some other contribution.

 

Hmm, looks like I should make it so that if a user in a temporary account manages to log out manually, it'll delete the account as well.

 

I think the problem that omidhz experienced may have been a customer with a permanent account who changed his mind. You need to unregister the EC variables on logout in that case.

 

I haven't been posting much in the past couple of days because I've been busy tending to my shop. (Which is a good thing.)

 

I have a problem with one customer using MSIE 6 on XP who can't check out. It appears that the card number isn't posted when he clicks "continue" on checkout_payment. Apache logs show the POST transaction, but no detail, of course. When his card number is passed to cc_validation, it's empty, so he gets a "we don't accept this card type" error, but the reported first four digits are "". I had one other customer who had a similar error, but it appears that he just gave up and abandoned the cart.

 

I can duplicate the error message by sending an empty credit card number. The error message when you leave the credit card field blank is somewhat ambiguous. Perhaps a new test could be added for a null credit card number, with an appropriate error message, before sending the card to cc_validation, though a similar modification to cc_validation would benefit all credit card modules that depend on it. However, they'd have to catch the new error type.

 

--Glen

Link to comment
Share on other sites

Of course not. The statement was taken out of context. I said that there were two points (that I recall) where PWA and WPP modified the same block of milestone code. The quoted change was what I used to provide both functionalities simultaneously. All other WPP modifications were applied, either as drop-in replacements for the original file, or by copying the WPP modification into the existing file that I had modified previously for some other contribution.

 

--Glen

 

Not the only modification period, the only modification of the code provided with WPP. Why do you feel that it's necessary to put the WPP code for login.php in login_pwa.php? For display purposes? If you then turn off PWA the EC link disappears as well, correct?

 

For the "we don't accept this card type" error, I saw that with a very similar credit card module, but only when using the combined shipping/payment pages of Fast Easy Checkout, and then only under certain circumstances having to do with code added to checkout_confirmation.php for that contribution. What the Fast Easy code did in the confirmation page was unregister all the cc info- I don't understand how any credit card module would work in this situation, but that's what it was for. If I didn't have that code in there, then I got the "we don't accept this card type" error.

 

My two cents on trying send an empty cc number is a pop up box telling the user his/her cc info is incorrect/invalid. Javascript?

Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

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