Jump to content
Sign in to follow this  
dynamoeffects

PayPal WPP Direct Payments & Express Checkout Support

Recommended Posts

$timeout can only be set to a maximum of 300. Maybe that's the problem? Dunno, you've covered just about all of the bases.


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
Finally got time to install this beast this morning. Ran into some problem.....gonna go back through the posts here and see if I find a fix but also post here:

 

Using SANDBOX.

Direct checkout seems to work fine.

Express checkout doesnt work at all. Here's whats happening:

 

If you login to your account in OSC first and then opt to use EC, I get the following error:

 

I was getting the 10417 error back on page 2 or 3. I had to turn off the verified and confirmed address checking in the module's settings. I think the bank account attached to the sandbox paypal accounts is depleted. Doesn't seem to be a problem in the live version.

 

 

If I add items to OSC and then opt to checkout using EC/PAYPAL without having an existing account in the OSC store.....first I get this error on the order confirmation page in the delivery address section(where the customers address should be):

 

The above happens if the paypal accounts city/town i spelled wrong in relation to the zip code. After I corrected the address in the sandbox paypal account I still get the "Warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/mydomain/public_html/catalog/includes/functions/general.php on line 43" error, but then gives me a different one when attempting order completion:

 

When the info's sent back from paypal, it tries to match up the locations with the zone tables. If the information sent back from paypal is incorrect, it'll scrub the address. Not sure how I should handle that. Forward the user to shipping_address.php if the address is invalid?

 

 

Also worth noting......no way that I have attempted yet has successfully added the customers state abbreviation into the created OSC customer account when using the express checkout method. When viewing the new account created in the admin section, the new users STATE box is blank.

 

What state do you have entered in this user's paypal account (exactly as written there)?

 

Now on to a couple minor questions. Why is the paypal option on the delivery confirmation page? My understanding was that the paypal method had to be offered BEFORE the customer was forced to enter their info into the store. Since the customer already would have supplied their info in order to have an account and login.....why have the paypal option on the delivery confirmation page and not just on the payment option page?

 

Oh, you mean on the shipping page (checkout_shipping.php). If a customer is already logged in, they wouldn't have seen the button on the login page. It's just to stay compliant. It's on the TODO to hide it if they've already seen it, but making it come back when I need it is easier said then done.

 

 

Honestly, I think it looks rather poor on this page. Also, It would be better to have teh paypal option on the payment page(if opted to use it in the admin section) to be in a seperate box. I think its confusing having it in the same box as the direct payment boxes.

 

In 0.5, you have the option of displaying the Express Checkout button on the payment page as well. The one on the shipping page must stay to keep the PayPal overlords happy.

 

 

Can the following statements be modified without violating paypal TOS?

 

Fast, Secure Checkout with PayPal

 

Save time. Checkout securely. Pay without sharing your financial information.

 

Afraid not. That text is copied verbatim from the compliance section of the EC integration guide.


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 cannot seem to get the module to work no matter what I do. I'm so so close. I can almost taste the sweet smell of sucess! Thanks everyone for being so helpful.

 

Keep getting: Your credit card was declined error

 

ask the person to use a different payment method.

 

Let me run through what I've done:

 

-I've installed OS commerce on a non- SSL server (could this be why I'm having problems?)

 

-I've applied for and received my cert from paypal payments pro and placed/uploaded the cert in the proper cert folder.

 

-I've installed/uploaded the pear parts one and two into the folder "pear" which resides just inside "catalog".

 

-I've configured the module in the admin panel to point to the pear files and to the certs folder with the cert inside. I'm also using the API user name and password I used to get the cert from paypal.

 

What did I miss? Do I need to change the timing bit in the pear files? I thought that was done already in the pear files I downloaded..

 

 

 

 

What is the concensus, do I need a "Pear.php" file to make it all work. If so where can I get that file? Thanks.

Share this post


Link to post
Share on other sites

When testing Direct Payment on the sandbox, use a credit card number other than 4111111111111111.


Patrick Breitenbach

Share this post


Link to post
Share on other sites
When testing Direct Payment on the sandbox, use a credit card number other than 4111111111111111.

 

I actually have been using this live. Trying to get to charge my credit card or take funds from my paypal account and put them into my business account(I have two different acounts)

 

The exact error I'm getting is:

 

Transaction cannot complete.

The transaction cannot complete successfully. Instruct the customer to use an alternative payment method. (10417)

Share this post


Link to post
Share on other sites
$timeout can only be set to a maximum of 300. Maybe that's the problem? Dunno, you've covered just about all of the bases.

 

Changed $timeout to 299, no soup. (Didn't work) Thanks for your quick post though.

Edited by support01

Share this post


Link to post
Share on other sites

I just installed and when I select "CHECKOUT" I'm getting "Fatal error: Call to undefined function: link_post_variable() in /www/l/...removed my site info.../htdocs/includes/classes/order.php on line 27" I did'nt notice this covered in the previous 12 pages, so I hope its something simple & stupid on my end.

 

Thanks

Share this post


Link to post
Share on other sites
Yeah, I could swear I included the 0.2 patch, but apparently didn't. Download the 0.2 patch or download version 0.4 that I just uploaded.

 

paccoral, you didn't set the path to your pear files or the path to your certificate is incorrect.

 

 

I just re-installed version 0.5 - had it working before but got a new domain name - and now when I go to create an account, fill in all the required info, and click on the continue button, the create account page just loads again like new. No errors, no notification of account created, etc. I tried logging in, but the account was not created.

 

Do I need a newer version of the create account file? Is there some other setting in admin I need to change?

 

Thanks in advance!

Share this post


Link to post
Share on other sites

dynamoeffects- Turned off verified AND confirmed and it does go through using EC now. I tried with only verified off before and that didnt work. Thanks, hopefully one issue 'fixed'.

 

Why does the user need to see the paypal EC option on the checkout_shipping.php page? Sure they didnt see the option on teh login page, BUT I thought paypals thing was to offer the EC method to the cutomer BEFORE the customer has to provide the store with their information. IF the customer already has an account created with the store and logs in.......the store already has the customers information....so why the need to show the paypal EC method before the regular payment page?

 

Thanks for the help....think ill do some tweaking and take this baby live.

Share this post


Link to post
Share on other sites

meandleo, there's something else wrong with your create_account.php file. Pull a version from backup or completely overwrite it with the included version and see what that does.

 

Sid, it has to go at the beginning of the checkout process. Here's the guide so you can read it:

https://www.paypal.com/en_US/pdf/PP_Express...rationGuide.pdf


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
What state do you have entered in this user's paypal account (exactly as written there)?

 

State as set in paypal is PA

 

When the customer comes back to the OSC site from paypal to the checkout_shipping.php page, the customers address is 100% correct there. When moving on to the checkout_confirmation.php page I then get the "Warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/mydomain/public_html/catalog/includes/functions/general.php on line 43" error under 'delivery address' and the account created for the paypal customer has a blank state field and wrong country selected.

 

Another quick question.....does paypal host any other paypal logos we can use? The one that it uses now looks alittle rough at the corners when on a black background.

 

Thanks

Edited by Sid04

Share this post


Link to post
Share on other sites

I got my credit cards to process when I switched from sandbox to live. However, when I enable my SSL it starts acting up. A user goes to the site and adds items to their shopping cart, but when they click checkout, and it goes to https all the items are removed from the shopping cart. I'm not sure if I have something set up wrong in my config file. Or if my SSL certificate is screwed up. Here is my config:

 

 

define('HTTP_SERVER', 'http://www.mydomain.com'); // eg, http://localhost - should not be empty for productive servers

define('HTTPS_SERVER', 'https://mydomain.com'); // eg, https://localhost - should not be empty for productive servers

define('ENABLE_SSL', true); // secure webserver for checkout procedure?

define('HTTP_COOKIE_DOMAIN', 'www.mydomain.com');

define('HTTPS_COOKIE_DOMAIN', 'mydomain.com');

define('HTTP_COOKIE_PATH', '/');

define('HTTPS_COOKIE_PATH', '/');

define('DIR_WS_HTTP_CATALOG', '/');

define('DIR_WS_HTTPS_CATALOG', '/');

define('DIR_WS_IMAGES', 'images/');

define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/');

define('DIR_WS_INCLUDES', 'includes/');

define('DIR_WS_BOXES', DIR_WS_INCLUDES . 'boxes/');

define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');

define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');

define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');

define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/');

 

define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/');

define('DIR_FS_CATALOG', '/home/user/public_html/');

define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');

define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');

 

 

 

Any help would be greatly appreciated.

Share this post


Link to post
Share on other sites
I got my credit cards to process when I switched from sandbox to live. However, when I enable my SSL it starts acting up. A user goes to the site and adds items to their shopping cart, but when they click checkout, and it goes to https all the items are removed from the shopping cart. I'm not sure if I have something set up wrong in my config file. Or if my SSL certificate is screwed up. Here is my config:

define('HTTP_SERVER', 'http://www.mydomain.com'); // eg, http://localhost - should not be empty for productive servers

define('HTTPS_SERVER', 'https://mydomain.com'); // eg, https://localhost - should not be empty for productive servers

 

define('HTTP_COOKIE_DOMAIN', 'www.mydomain.com');

define('HTTPS_COOKIE_DOMAIN', 'mydomain.com');

 

Any help would be greatly appreciated.

 

I'm not entirely familiar with how cookies work, but if I were you I would always use "www." in my domain settings, or never use it.

 

My settings are

 

define('HTTP_SERVER', 'http://www.mydomain.com'); // eg, http://localhost - should not be empty for productive servers
 define('HTTPS_SERVER', 'https://www.mydomain.com'); // eg, https://localhost - should not be empty for productive servers

 define('HTTP_COOKIE_DOMAIN', 'www.mydomain.com');
 define('HTTPS_COOKIE_DOMAIN', 'www.mydomain.com');

 

and I have not had such a problem. Could be something else, but that's my two cents.

 

 

 

Another quick question.....does paypal host any other paypal logos we can use? The one that it uses now looks alittle rough at the corners when on a black background.

 

Thanks

 

PayPal Logo Center


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.

Share this post


Link to post
Share on other sites
Post what he has entered for a state in his account. PayPal requires a two letter state/prov/region, so the code will take whatever state is in $orders->billing['state'] and try to find the two letter equivalent. If a match is not found, it generates that error. It could just be that he mistyped his state/province/region name and it couldn't find that location. As that zone table is pretty comprehensive, I can't imagine that his location isn't in there.

 

He's in Romania. He entered his city again in the state field, because OSC requires that you put something in the state field, except when editing a customer in Admin. I just modified the code in the payment module to send a blank state if the lookup failed, instead of throwing an error. Now it goes to PayPal and gets an "unsupported country" error message.

 

Glad you caught that. It's already fixed in the inevitable v0.6. :-"

 

Actually, I mentioned it the first time around, but you focused on the error, rather than the error text. Both had to be dealt with. :-)

 

I have another issue in 0.5. EC payments now get the DP descriptive text stored in the payment method field of the order. I went with your code, rather than maintain the patch I made to 0.2 (that worked).

Share this post


Link to post
Share on other sites

Brian-

 

On my site, if someone clicks on the EC button from checkout_payment.php and goes through the PayPal process, they're taken back to checkout_shipping.php, a page they've already seen.

 

Is this normal, and if not then where is the code that controls this? I've been monkeying, but I should have only changed textual information and where certain things are displayed on the two pages (shipping and payment).

 

Also, if they hit the back button after clicking on the EC button from the payment page, then the page they see has no payment options to choose from. Damn back button.

 

Thanks

Stew

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.

Share this post


Link to post
Share on other sites
The Express Checkout button? That is described here: https://www.paypal.com/express-checkout-buttons

 

The icons on checkout_payment on my site were my own modification.

 

--Glen

 

 

i guess thats what im asking.....do we have to use the log on paypals site. I mean, could I use the same logo just touch it up alittle for a black background and host it on my server?

Share this post


Link to post
Share on other sites
i guess thats what im asking.....do we have to use the log on paypals site. I mean, could I use the same logo just touch it up alittle for a black background and host it on my server?

 

 

That's what I would do- PayPal has never had a problem, as far as I know, with having you fit their options into the look and feel of your site.


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.

Share this post


Link to post
Share on other sites

Hi, Dynamo,

 

I understand WPP only accepts USD. I have setup my shop to show 3 kinds of currencies: USD, GBP and EUR. Is it possible to let the customers shop in their respective currencies but ultimately when they check out, they are going to be charged in USD?

 

Now, when GBP customers check out, the shopping cart shows GBP and there are 2 results:

 

1. If they use Direct Payment API, they got charged in USD of that GBP amount (i.e. for things cost GBP 1.00 I will get USD 1.00!!)

 

2. If they use Express Checkout, an error 10444 - currency specified not the same as the one charged.

 

I have installed a module that tells the customers that they are going to be charged in XXX USD. However, I believe this is just a sentence to show the customers the USD amount, which is not linked to the amount that is going to be sent to Paypal to process.

 

Is there a way to get around this?

 

Thanks a lot!

 

Ken

Share this post


Link to post
Share on other sites

Does anyone have this module working properly with Credit Class and Gift Voucher (CCGV) (or vice-versa; does anyone have CCGV working properly with this module)?

 

No matter what I have tried to change the total passed to PayPal is the total before the coupon is applied rather than the total after the coupon is applied - for credit card direct payment at least - haven't tried with EC yet but would assume they both use the same method to pass the total to be charged to PayPal.

 

The order data in the order in the Admin shows the discount but the customer is charged by PayPal the full amount, without the discount for redeeming the coupon.

 

A reference in this thread that said to set verified accounts and confirmed address to off has already been done (and were never on anyways).

 

In the CCGV thread the only answer that even comes close applies to the PayPal IPN module and states to "set the Shopping Cart Method to Aggregate and NOT itemised".

 

I installed CCGV after this module so I did not have the problem with PayPal IPN.

 

(I was using the PayPal IPN before this module arrived like manna from heaven but do not currently have it enabled).

 

If anyone has any tips I certainly would appreciate it.

Edited by bfcase

Share this post


Link to post
Share on other sites

I have the shipping insurance module turned on.......when a customer uses paypal the shipping insurance amount isnt charged.

 

The customers invoice SAYS they paid it, but the shipping insurance amount isnt included in the amount credit to my paypal account.

 

Also, when a logged in customer chooses paypal they can then enter a different email address in paypal. Then they are taken back to the checkout_shipping page AGAIN which then shows their paypal shipping address they chose in paypal. Once they go to the next page(checkout_confirmation) the paypal shipping address is gone and the cart lists the customers address on file with the store account as the delivery adddress. Does this sound kosher? Seems confusing to me. Maybe the customers email address that he's logged into the store with should be the forced email address used for the paypal transaction(i believe ive seen this done with other paypal contribs). Maybe even a check to see if the paypal address matches the one on file with the store? I dont know....just seems alittle strange even displaying the address recieved from paypal when it then gets dumped anyhow(as I dont see it anywhere on the invoice).

 

Any thoughts on this?

Share this post


Link to post
Share on other sites

the one previous error I reported:

Warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/mydomain/public_html/catalog/includes/functions/general.php on line 43

 

is apparently related to no country code being set/provided/whatever when the customer returns from the paypal site. Anybody have a work around, even temporary? Maybe hardcoding a given country id for paypal checkout users?

Share this post


Link to post
Share on other sites
Also, when a logged in customer chooses paypal they can then enter a different email address in paypal. Then they are taken back to the checkout_shipping page AGAIN which then shows their paypal shipping address they chose in paypal. Once they go to the next page(checkout_confirmation) the paypal shipping address is gone and the cart lists the customers address on file with the store account as the delivery adddress. Does this sound kosher? Seems confusing to me. Maybe the customers email address that he's logged into the store with should be the forced email address used for the paypal transaction(i believe ive seen this done with other paypal contribs). Maybe even a check to see if the paypal address matches the one on file with the store? I dont know....just seems alittle strange even displaying the address recieved from paypal when it then gets dumped anyhow(as I dont see it anywhere on the invoice).

 

Any thoughts on this?

 

There are two ways to implement the EC API. The first is where the customer logs in to PayPal and provides his shipping information, which is returned in PayPal's response. This is the method that Brian uses, called Integration Point 1 in the WPP integration guide. The second is on the payment page; checkout_payment.php in OSC. PayPal calls this Integration Point 2. Since the customer has already provided a shipping address, it should be passed to PayPal in the EC request; PayPal will return it along with a "confirmed" flag if it matches one of the addresses that PayPal has on file for the paying account. Implementing this correctly will make your payment flow work as expected. Upon confirming payment, the customer should be sent to checkout_confirmation.php.

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  

×