Jump to content
Sign in to follow this  
dynamoeffects

PayPal WPP Direct Payments & Express Checkout Support

Recommended Posts

Possibly. There's another API that I haven't utilized yet to complete authorized transactions. I was planning on eventually adding a button to the order page to complete transactions, but as this is done in my free time, there's no timeframe on when this will be done.


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.

Share this post


Link to post
Share on other sites

Dear Brian,

 

Really nice module.... Thousand thanks in advance!

Here is the exact description of the problem:

 

1. Open http://www.verifresh.com/onlinestore

 

2. Choose an available, product for example our "Tongue Cleaner", click on it and its product_info.php page will open.

 

3. Click "Add to Cart", and the shopping_cart.php page will open.

 

4. Click on "Checkout" and this will call up the login.php page (nameed here "Account Sign In").

 

5. Here you either choose to Sign in as an "Already a Customer:" and use our new testing account

(use email address= popesail@gmail.com, passw =999999999 - just made that up, not a real one)

or sign in as a "New User:", and press "Continue".

 

6. That takes you to the checkout_shipping.php (our Shipping Information page) where you may choose "Econnomy Shiopping" in the radio button, then press Continue to "Choose a checkout method.

 

7. It opens the checkout_payment.php (our "Payment Details" page) where I press on teh Paypal yellow button.

 

8. Now it takes you to Paypal login, you sign in to your Paypal account, and it opens the Paypal "Review Your Payment" page.

 

9. On this page you click on the button "Review Payment", that takes you back to our site, to the checkout_payment.php page (our page called "Payment Details") that contains the following text:

"Fast, Secure Checkout with PayPal

You're currently checking out with PayPal Express Checkout!

Click Here to choose another payment method."

Here, press "Continue" and you will get this additional red bar on top with a white text, saying:

"Please select a payment method for your order.",

... and that happens instead of going next to the checkout_confirmation.php (on our "Order Details" page).

 

NOTE1: if I chose to press on the "Click Here to choose another payment method." link it takes me back to the checkout_shipping.php where I can choose the "Economy Shipping option" and press Continue to "Choose a payment method". It opens the checkout_payment.php again, choose teh Paypal yellow button again, sign in Paypal, Opens the Paypal Review Your Payment, clicl Review Payment, back to "Payment Details" "You're currently checking out with PayPal Express Checkout!", press Continue, and only now i get to the next stage on the checkout_confirmation.php (on a page called "Order Details") that allows me to Confirm Order, and finalise the current trasaction.

 

NOTE2: Yet, if I choose to checkout with the Paypal yellow button straight from the login.php page (our Account Sign In page) it allows you to checkout without the trouble above (no more "Please select a payment method for your order."), all the way to the confirmation in one shot.

 

Best regards,

Theodore (pope's mobile express :))))))

 

Dear Brian,

 

My store is now live from today. Many thanks!!!

There still seem to be a problem that I don't know how to solve.

When we sign in and choose Paypal Express we reach eventually somewhere on the payment page, at the last stage before the final confirmation, stuck in loop where it displays on a red bar the following error:

"Please select a payment method for your order."

That is also a pointer that sends me back to the Payment Method...

Yet, if I do the checkout pressing on the yellow Paypal button present on the Login page, I do not have this problem.

You may see our online store and the problem live here: www.verifresh.com/onlinestore

The Credit card payment is fine.

I would really appreciate any sugestion that may help pass over this loop.

Best,

Theodore

Share this post


Link to post
Share on other sites
I can tell you put a lot of work into writing that, and you're partially right, but the placement on the shipping page is correct. Read that paragraph from their documentation again:

 

"You must present the PayPal Express Checkout button and associated messaging before requesting postal address, billing address, and financial information."

 

"Must" means that 100% of the customers must see the button 100% of the time when they're checking out, but before they are asked for their shipping information or billing information. osCommerce is designed where the shopping cart is not apart of the checkout process. That is (if the "send to cart" config variable is set like this), I can select 10 products, add them to my cart and checkout without ever actually seeing the shopping cart. It's no more attached to the checkout process than the account page or the contact us page.

 

The page that everyone sees no matter what is the checkout_shipping.php page, and the button is placed before it asks for any customer shipping or billing information. Note the graphic that you posted and how there is no "Checkout" link in their design. In their design, you must go through the shopping cart in order to checkout.

 

The button placement on the login page is something that can go, but I think it's a nice feature. It's only visible when the customer has clicked the "Checkout" link, and instead of creating an account, they can click one button and start going through the checkout process immediately.

 

I seem to recall that having the button on checkout_shipping.php satisfies the case where a customer logs in with an empty cart, puts something in the cart, then begins the checkout process.

 

Having the button on login.php satisfies the requirement that customers need not provide any personal information before checking out using PayPal. Without this, a new customer would have to create an account, sharing his personal information, before getting to the EC button, which is clearly a violation of PayPal's TOS.

 

I have seen a store implementation where the EC button is presented to the left of the Checkout button in shopping_cart.php. This is a bit cleaner for shops where "send to cart" is "true", as a PayPal customer will never see login.php, saving one click. Perhaps one could do the same with header.php when the cart has something in it, but there isn't much room.

 

One can argue that, once the customer has seen the EC button, that you need not present it again, but the logic could get convoluted, especially if the customer hits 'back' in his browser.

 

I have long argued that EC on checkout_payment.php should be presented on an equal footing with other payment methods. I have suggested using a "stub" payment module to make osC present it correctly, displaying "PayPal [acceptance mark]", followed by the radio button. (I prefer the radio button to select the payment method to be on the left; there is a contribution that implements this change.) This "stub" module would call through to the paypal_wpp.php module with the correct options set to process an EC transaction when the customer clicked "Continue". Since I haven't had the time to implement this myself, and Brian hasn't done it, I work around it by disabling the EC button on checkout_payment.php in the WPP module and using the osC PayPal IPN module for customers who choose PayPal as their payment method at checkout_payment.php. At this point, I could use Alex Li's PayPal EC IPN module instead, but it didn't exist when I implemented the solution for my shop.

 

--Glen

Edited by SteveDallas

Share this post


Link to post
Share on other sites

Thanks brahms, I see what you're doing and I'll look into it. For now, I suggest disabling the EC button on the payment page. There's an option in the module's settings.


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.

Share this post


Link to post
Share on other sites

OK Brian,

 

Looking forward for the good word....

Hope there is a workaround.

 

Thank you and Steve as well:-)

 

Thanks brahms, I see what you're doing and I'll look into it. For now, I suggest disabling the EC button on the payment page. There's an option in the module's settings.

Share this post


Link to post
Share on other sites

Dear Bryan,

 

For some reason about 4 or 5 days ago (maybe more) - all our Direct CC transactions are coming back like this :

 

Transaction ID:

Payment Type: PayPal Direct Payment

Payment Status: Completed

AVS Code: No AVS Code Returned

CVV2 Code: No CVV2 Code Returned

 

Basically transaction ID is not there anymore, AVS code and CVV2 codes also not there. Also we don't receiving the Emails from paypal confirming the arrival of new funds.

 

However apart from the above everything is ok : we receive the money into our account - the shop database is updated ok, we receive an email from the shop about the new transaction ect...

 

Nothing has changed in our code (for the past 2 months) .. nothing at all ! So I am at a loss as to what is causing this... ? Can you please shed some light as I am getting a bit worried that things are suddenly just gonna stop working altogether.

 

Thanks in advance.

Edited by eliw

Share this post


Link to post
Share on other sites

Hello,

Im currently getting this error when going to checkout_process.php page..

 

Fatal error: Cannot redeclare class cc_validation in /home/****/public_html/includes/classes/cc_validation.php on line 13

 

line 13 : class cc_validation { is class declaration.

 

As far I can tell its only used in paypal_wpp.php class but I don't see anything wrong there.

Have any one see this one before?

Can any one suggest any solution.

 

Thank you!

Share this post


Link to post
Share on other sites

@eliw: That means that your store didn't receive a response from PayPal, so it did a transaction search and confirmed the card had been charged. If you're not receiving emails from PayPal regarding money received, that is purely a PayPal issue. Also if something breaks all of the sudden, PayPal's usually upgrading or messing with something.

 

@igorz: Open up /includes/modules/payment/paypal_wpp.php and change all instances of this:

 

include(DIR_WS_CLASSES . 'cc_validation.php');

 

to this:

 

require_once(DIR_WS_CLASSES . 'cc_validation.php');


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.

Share this post


Link to post
Share on other sites

I just found a bug in the transaction search and explains why you're not receiving the transaction ID. It'll be fixed in the next version.


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.

Share this post


Link to post
Share on other sites

Hi All! I have a couple of issues. This may be a silly question but how can I tell what version of WPP module I'm on? Way back when it was installed I didn't know as much about OSC so I paid someone to install it for me. I tried looking through some of the files but didn't find anything.

 

I would also like to upgrade to the latest verion, is .0.8.2 the latest version I need to go to? Do I need to uninstall the current module or do anything to it before I upgrade?

 

I love the module however I've never been able to use it. I used for a few weeks and found an issue and nobody every found a solution. The issue is if the customer enters their card number wrong or their cvv wrong it caches the info somehow and no matter how many times they try to change it, it reverts back to what they entered to begin with. Each time they would try again it would do an authorize on their card therefore tieing up funds for a couple of days. That made for some very unhappy customers and in the end they wouldn't place their orders at all. So I was forced to turn it off. Has anyone else had this issue? Is there a fix for it? I'm hoping upgrading will fix it.

 

I just recently changed hosts and I thought maybe the issue would be resolved when I switched, but it is still occurring so I don't know what else to do.

 

Thanks in advance for your help!

 

Shell

Share this post


Link to post
Share on other sites

Thank you very much, dynamoeffects

I should have known that.

 

 

I fixed that and there was one more about orders_total.

But now there is another one

Fatal error: Cannot redeclare class ot_subtotal in /home/***/public_html/includes/modules/order_total/ot_subtotal.php on line 13

and as far I can tell tell its only used in admin section.

thank you again for your suggestions.

Share this post


Link to post
Share on other sites
Google Analytics e-commerce integration shouldn't be handled within payment modules. It should be handled elsewhere in the checkout flow, after the payment module reports that the payment has been processed. There is a Google Analytics contribution that does this. it should work with all modules that work in the standard way. (Note that the osCommerce PayPal IPN module does not.)

 

Have a look at this: http://www.oscommerce.com/community/contributions,3756

 

Note that it includes both the basic urchinTracker and the e-commerce code. I haven't looked at the latest version, but the earlier versions had issues with the format of data sent to Google; namely that it didn't suppress the thousands separator or set the radix point to '.' when sending numeric values. The fix is posted in the support thread, and may be incorporated into the latest version.

 

--Glen

Glen, thanks for replying. I appreciate it. I realized last night (when I looked at my GA reports and saw that sales via Express Checkout were showing up as well as sales via Direct Payment) that I probably didn't need to worry about this after all, and your post lends strength to that notion.

 

Obviously, I have that contrib (3756) installed already. I installed it a few days ago (I did it the hand-edit way since I had already installed the urchinTracker(); thingy when I set up my GA account).

 

My confusion stems from also having Google Checkout. For GA with GC, the GA support does go into the payment module, I guess because when the customer GC's, he does not come back to checkout_success.php (making contrib 3756 have no effect). I assumed that with Express Checkout the same would be true, but I see now that this must not be the case.

 

Again, thanks for the reply, and sorry for the confusion.

Share this post


Link to post
Share on other sites
@eliw: That means that your store didn't receive a response from PayPal, so it did a transaction search and confirmed the card had been charged. If you're not receiving emails from PayPal regarding money received, that is purely a PayPal issue. Also if something breaks all of the sudden, PayPal's usually upgrading or messing with something.

 

Brian,

But the code has been working fine for 3 months prior to that - if the bug is there now it would have been there since the beginning... the transaction ID used to always be passed normally for 3 months and the suddenly stopped about 4 days ago - at the same time the notifications emails stopped.

 

We are still receiving notfications for all other paypal payments.. Checkout express, normal Paypal payment ect.. it is just the direct CC ones that have stopped.

 

I know it must be something on the paypal side but I thought you might shed some light as to what could be the problem.

 

Paypal asked me to give them this: "Can you send me the payment string that you are passing to our servers for the direct payment and the answer (with the missing AVS and CVV2) that you are receiving back?"

 

I am not sure exactly how to do that though..

Share this post


Link to post
Share on other sites

@shellgc: 0.9 is pretty stable and I would suggest using it over 0.8.2. Open /includes/modules/payment/paypal_wpp.php and the version number should be visible on the first line.

 

@igorz: Did you include the checkout_process.php modification?

 

@eliw: You'll have to modify the module to retrieve that information. Open /includes/modules/payment/paypal_wpp.php and do a find for this line:

 

if ($response) {
 //Convert the XML into an easy-to-use associative array
 $response = $this->wpp_parse_xml($response);	   
}
return $response;

 

Change it to this:

if ($response) {
 $log = "TRANSACTION REQUEST:\n\r" . $xml_contents;
 $log .= "\r\n\r\nTRANSACTION RESPONSE:\n\r" . print_r($response, true);
 tep_mail(STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS, 'PayPal Transaction', $log, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

 //Convert the XML into an easy-to-use associative array
 $response = $this->wpp_parse_xml($response);	   
}
return $response;

 

This (untested) change will email you the information PayPal needs the next time someone checks out, successful or not. Be sure to remove this code after the issue is resolved.

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.

Share this post


Link to post
Share on other sites
This (untested) change will email you the information PayPal needs the next time someone checks out, successful or not. Be sure to remove this code after the issue is resolved.

 

Fantastic. thank you !

Share this post


Link to post
Share on other sites

Bryan,

 

I did a test purchase myself.. I got two emails - with 2 sets of TRANSACTION REQUEST/TRANSACTION RESPONSE

 

First one gets an error in the response - the second is successful... here they are they might make more sense to you - (i have blanked out the credit card numbers/personal info and the API credentials user/pass)

 

FIRST set:

 

 

TRANSACTION REQUEST:

 



 

contact_XXXXXXXXXXX.com

DXXXXXXXXXXXB

 

2.0

 

Sale

 

6.60

Order placed on March 15, 2007, 1:49 pm by Eli Wiser(ID: 1328)

0.1

5.53

 

0.97

Phone: 0111111138 -- Email: biz@xxxx.com

 

 

Eli Wiser

22 bla bla road

Bla bla

Surrey

KT15 2LL

GB

 

test item0.184 (test item)1

 

biz@xxxxx.com

 

Eli

Wiser

 

22 bla bla road

Bla bla

Surrey

KT15 2LL

GB

 

 

Visa

45xxxxxxxxxxxx65

02

2011

01

2007

00

333

 

86.132.44.146

1cfe4e366f3f7642afb3832c7f5f20d4

 

 

TRANSACTION RESPONSE:

 

contact_xxxx.xxxxxx.comD4xxxxxxxxH2BSOAP-ENV:ServerInternal errorTimeout processing request

 

 

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

 

 

Second set:

 

 

 

TRANSACTION REQUEST:

 

 

contact_xxx.xxxxxx.com

D4xxxxxxxxxxx2B

 

 

2.0

2007-03-14T00:00:00-0700

biz@xxxxx.com

6.60

 

 

TRANSACTION RESPONSE:

 

2007-03-15T13:53:06ZSuccessaceacd769c1032.0000001.00062007-03-15T13:53:05ZGMTPaymentbiz@xxxx.comEli Wiser70V26639LD880472CCompleted6.60-0.336.27

Share this post


Link to post
Share on other sites

Seems like the first transaction fails ... then there is a transaction search which then get a success but no AVS codes and Transaction ID and because it is a transaction search it does not trigger a IPN notification email.

 

ANy idea why does the first one fail ? Is it some sort of timeout ? Can I increase the timeout variable if there is one ?

Share this post


Link to post
Share on other sites

That confirms that it's a PayPal issue. The error "ServerInternal errorTimeout processing request" means that their servers are timing out. This module has nothing to do with the email you receive from PayPal after a successful transaction.

 

On the good side, I'm quite pleased with how well the module performs now. Even when PayPal barfs all over itself, the module confirms and then completes the sale. /ends back patting

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.

Share this post


Link to post
Share on other sites
[snip]

I love the module however I've never been able to use it. I used for a few weeks and found an issue and nobody every found a solution. The issue is if the customer enters their card number wrong or their cvv wrong it caches the info somehow and no matter how many times they try to change it, it reverts back to what they entered to begin with. Each time they would try again it would do an authorize on their card therefore tieing up funds for a couple of days. That made for some very unhappy customers and in the end they wouldn't place their orders at all. So I was forced to turn it off. Has anyone else had this issue? Is there a fix for it? I'm hoping upgrading will fix it.

 

I just recently changed hosts and I thought maybe the issue would be resolved when I switched, but it is still occurring so I don't know what else to do.

 

Thanks in advance for your help!

 

Shell

 

I haven't seen problems with the same data being sent each time, but I have had a few customers who have experienced the "Gateway Decline" message. This response comes when the customer enters an incorrect expiry date, billing address, or CVV. PayPal (the gateway) declines the transaction as an anti-fraud measure, but the customer's bank processes the authorization anyway, so the customer's funds are tied up until the authorization expires. The error message that the customer sees often doesn't point to the real problem. I think that the error message says that the customer should check the CVV, but the problem could be one of the other data elements, so they never figure out the correct solution.

 

The only way for the multiple authorizations to be resolved is for PayPal to turn around and cancel the authorization when they (PayPal) decline a transaction. However, leaving the authorizations in place might help in actual fraud cases, because each authorization chips away at the customer's available credit line (or available balance on debit cards) with charges that will never complete, so the customer isn't harmed.

 

When a legitimate customer makes multiple attempts, their credit line is eaten up by the authorizations, but, depending on the bank, the limit may be somewhat "soft", so they can still use their card for other transactions. Debit card customers aren't so lucky; each authorization debits their available balance, and might cause other charges (a check, for instance) to bounce.

 

--Glen

Share this post


Link to post
Share on other sites
That confirms that it's a PayPal issue. The error "ServerInternal errorTimeout processing request" means that their servers are timing out. This module has nothing to do with the email you receive from PayPal after a successful transaction.

 

On the good side, I'm quite pleased with how well the module performs now. Even when PayPal barfs all over itself, the module confirms and then completes the sale. /ends back patting

 

I am also impressed by that Brian ! The transaction search in this case is a life saver.

 

Any reason why it is not hapening to more people and just us ? Or is it simply a case that others just have not noticed this ?

 

I'm hoping that now that I've passed on this info to Paypal, they will be able to do something about it.

Share this post


Link to post
Share on other sites

-- regarding my last post, all of the comments/feedback are correct. Depending on different scenarios dynamoeffects has accommodated them beautifully. For that shop it was a simple matter of removing the location I didnt need :) Guess I woke up on the wrong side of the keys.....

 

dynamo, do you do any side jobs? (i checked your profile but I dont know if you run your own development company or not). I have some needs regarding this contrib and having to do with memberships. PM me if you are interested in knowing more. Budget is around 700 or so. Easy money.

Share this post


Link to post
Share on other sites
Brian,

But the code has been working fine for 3 months prior to that - if the bug is there now it would have been there since the beginning... the transaction ID used to always be passed normally for 3 months and the suddenly stopped about 4 days ago - at the same time the notifications emails stopped.

 

We are still receiving notfications for all other paypal payments.. Checkout express, normal Paypal payment ect.. it is just the direct CC ones that have stopped.

 

I know it must be something on the paypal side but I thought you might shed some light as to what could be the problem.

 

Paypal asked me to give them this: "Can you send me the payment string that you are passing to our servers for the direct payment and the answer (with the missing AVS and CVV2) that you are receiving back?"

 

I am not sure exactly how to do that though..

 

Hi Dynamoeffects, thanks for the input but I don't even have that file. I sent you a PM regarding this, I had someone install this for me way back when I start OSC because I didn't know what I was doing. It turns out it's a custom module so I have no idea what version it is or where to begin to uninstall it. I'm totally stuck. :'(

 

Thanks

 

Shell

Share this post


Link to post
Share on other sites
Hi Dynamoeffects, thanks for the input but I don't even have that file. I sent you a PM regarding this, I had someone install this for me way back when I start OSC because I didn't know what I was doing. It turns out it's a custom module so I have no idea what version it is or where to begin to uninstall it. I'm totally stuck. :'(

 

Thanks

 

Shell

 

Sorry I don't know what I hit here and replied to the wrong post. This was a reply to dominoeffects response. Sorry.

Share this post


Link to post
Share on other sites

@DRIVE: It really depends on the size of the project, but yes, I am a freelance developer. Contact me through the "Send an Email" link in my profile and give me some more details of what you're after. Just guessing from your post, but if you're looking to do subscriptions, it's not a feature that's available with PayPal Pro.

 

@shellgc: FTP into your store and download the file /includes/modules/payment/paypal_wpp.php. If it's not there, you're using some custom version. If it is there, download that file and open it on your computer. Do you see my name in the top few lines? If so, you're using a version from here. If you don't have a /includes/wpp_xml/ file, that could just mean that you're using a version pre-0.8.


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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×