Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

PayPal WPP Direct Payments & Express Checkout Support


dynamoeffects

Recommended Posts

Kurt, you didn't install the pear modules properly.

 

Glen, he's receiving that error because he doesn't have a state selected in his account settings. This module is very US centric.

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, Kurt,

 

I got the same errors too yesterday. If you are using Dynamo's provided pear module, you need to click on the pear folder first, then you will see the catalog folder inside, then you will see the "real" pear folder you need. Copy this second pear folder onto your catalog directory. I forgot to click into the folders to get the "real" pear folder yesterday and I got the same errors.

 

Hope this help!

 

Ken

Link to comment
Share on other sites

Hello,

 

I had no problems installing this module and testing it in PayPal's sandbox.

 

However, when I switched to the live environment, test orders were being declined in osCommerce even though payments were received through PayPal. I edited the $timeout variable in catalog/pear/Services/PayPal/SOAP/Transport/HTTP.php and now the order is processed in both osCommerce and PayPal, but the checkout_success page is blank.

 

Any ideas?

Link to comment
Share on other sites

Kurt, put them in:

 

/catalog/

 

So you should have a diretory called /pear/ with all your modules in them. It doesn't matter where you put them, make sure the location is correct in the module's configuration panel.

 

Colin, open /catalog/includes/modules/payment/paypal_wpp.php and change the line:

 

$this->enableDebugging = '0';

 

to:

 

$this->enableDebugging = '1';

 

Then do another test order and email me the vardump that it sends back. It shouldn't send back any personal information, so don't worry about that.

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

Hey Dynamo,

 

I did what you told me and the following errors can up

 

 

Warning: main(PEAR.php): failed to open stream: No such file or directory in /var/www/html/pear/Services/PayPal.php on line 11

 

Fatal error: main(): Failed opening required 'PEAR.php' (include_path='/var/www/html/pear/:.:/php/includes:/usr/share/php') in /var/www/html/pear/Services/PayPal.php on line 11

 

Thanks for you continuous help

 

-Kurt

Link to comment
Share on other sites

Hi, Kurt,

 

Go to the Admin screen where you install your new WPP module. Go down to where you adjust the location Pear Modules:

 

If you installed the included pear modules, where are they stored? Should be:

/var/www/html/pear/

Leaving this blank will use the server's default include path.

 

(Like Dynamo said, it doesn't matter where you put them, make sure the location is correct in the module's configuration panel.)

 

The module has correctly identified the path. However, I just copied whatever is showing there, in this case

/var/www/html/pear/

into the box below anyway.

 

Click "Update".

 

I encountered the same error and this is my novice way of resolving things.

 

Hopefull it works out.

 

Ken

Edited by ken.yong
Link to comment
Share on other sites

Hey Dynamo,

 

I did what you told me and the following errors can up

Warning: main(PEAR.php): failed to open stream: No such file or directory in /var/www/html/pear/Services/PayPal.php on line 11

 

Fatal error: main(): Failed opening required 'PEAR.php' (include_path='/var/www/html/pear/:.:/php/includes:/usr/share/php') in /var/www/html/pear/Services/PayPal.php on line 11

 

Thanks for you continuous help

 

-Kurt

 

I had a question about this myself- my way of solving it was uploading the file PEAR.php which I happened to have lying around and which I noticed is not included with the pear files that come with this contribution.

 

Line 11 of Services/PayPal.php reads

 

require_once 'PEAR.php';

 

so I don't think I'm imagining this.

 

But not too many people have had a problem with this?

 

I don't know what's up here.

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

Also, for those hosting with GoDaddy, here is the link that can help to resolve the proxy issue:

 

http://help.godaddy.com/article.php?article_id=288&topic_id

 

It should contain all the info you need to adjust your proxy settings.

 

<?
$URL="https://www.paypal.com";
if (isset($_GET["site"])) { $URL = $_GET["site"]; }
$ch = curl_init();
echo "URL = $URL <br>\n";
curl_setopt($ch, CURLOPT_VERBOSE, 1);
//curl_setopt ($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt ($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt ($ch, CURLOPT_PROXY,"http://64.202.165.130:3128");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_URL, $URL);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
$result = curl_exec ($ch);
echo "<hr><br>\n";
echo 'Errors: ' . curl_errno($ch) . ' ' . curl_error($ch) . '<br><br>';
echo "<hr><br>\n";
curl_close ($ch);
print "result - $result";
echo "<hr><br>\n";
?>

Link to comment
Share on other sites

I had a question about this myself- my way of solving it was uploading the file PEAR.php which I happened to have lying around and which I noticed is not included with the pear files that come with this contribution.

 

I had to do the same thing.

Link to comment
Share on other sites

Also, for those hosting with GoDaddy, here is the link that can help to resolve the proxy issue:

 

http://help.godaddy.com/article.php?article_id=288&topic_id

 

It should contain all the info you need to adjust your proxy settings.

 

<?
$URL="https://www.paypal.com";
if (isset($_GET["site"])) { $URL = $_GET["site"]; }
$ch = curl_init();
echo "URL = $URL <br>\n";
curl_setopt($ch, CURLOPT_VERBOSE, 1);
//curl_setopt ($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt ($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt ($ch, CURLOPT_PROXY,"http://64.202.165.130:3128");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_URL, $URL);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
$result = curl_exec ($ch);
echo "<hr><br>\n";
echo 'Errors: ' . curl_errno($ch) . ' ' . curl_error($ch) . '<br><br>';
echo "<hr><br>\n";
curl_close ($ch);
print "result - $result";
echo "<hr><br>\n";
?>

I saw this information also on godaddy, and I put a test page in that runs the above code. That works just fine. However, when I put the additional curl_setopt calls in HTTP.php for this contrib, I go to check out (or click the EC button), and I just get a blank page (very quickly) - it is definitely doing something different than when I just have the stock HTTP.php, but still no luck getting past the blank page issue.

 

Ken (or anyone else), are you using godaddy? If so, did you put these settings in? Where did you put them? My theory is that instead of hard-coding in the curl_setopt for PROXY, the proxy_host and proxy_port have to be set in variables such that they are available in other areas of the code. I haven't been able to figure out how to set $options['proxy_host'] and $options['proxy_port']...

 

Sean

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

Sean Johnson

Link to comment
Share on other sites

I had to do the same thing.

 

 

Ha! I'm not the only one! Brian?

 

Hi,

 

I'm getting the following error message only when I click on a category or product link.

 

Error!

 

Unable to determine the page link!

 

Has anyone else gotten this message?

 

 

I can't see how this problem has anything to do with this contribution.

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

Okay, I finally figured out the Proxy settings!!

 

For godaddy hosted sites (or any site that requires use of a proxy server for curl), you must set the curl proxy options in order to get this contribution to work. I found this information on the paypal developer forums:

 

You should not modify the HTTP.php file. The correct code to set the variables without messing with the original file is by calling the function that sets the variables for you.

 

Do the following:

 

/* this is the instance of your caller object */

$caller =& Services_PayPal::getCallerServices($profile); //Create a caller object

 

/* set the parameters with the setOpt('curl', option, value); */

 

/* set the proxy type */

$caller->setOpt('curl', CURLOPT_PROXYTYPE, CURLPROXY_HTTP);

 

/* set proxy in the format: "http(s)://host:port"

- specify the protocol http or https

- the host may be a string or an ip

- proxy port is optional (default 8080) */

$caller->setOpt('curl', CURLOPT_PROXY, "http://64.202.165.130:3128");

 

/* set verifyeer ssl sertificate true/fralse */

$caller->setOpt('curl', CURLOPT_SSL_VERIFYPEER, FALSE);

 

/* set the timeout time in seconds */

$caller->setOpt('curl', CURLOPT_TIMEOUT, time);

 

Instead of changing the file, use the method.

Based on this recommendation, I modified paypal_wpp.php as follows...

 

Before:

	  $caller =& Services_PayPal::getCallerServices($profile); //Create a caller object.  Ring ring, who's there?

After:

		$caller =& Services_PayPal::getCallerServices($profile); //Create a caller object.  Ring ring, who's there?
	$caller->setOpt('curl', CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
	$caller->setOpt('curl', CURLOPT_PROXY, "http://64.202.165.130:3128");
	$caller->setOpt('curl', CURLOPT_SSL_VERIFYPEER, FALSE);
	$caller->setOpt('curl', CURLOPT_TIMEOUT, 60);

Once I do this, everything seems to be working for me. I still have more testing to do, but this seems to solve my timeouts and blank page issues.

 

Hope this helps save someone else some time.

 

Thanks,

Sean

 

By the way, great contribution - thank you

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

Sean Johnson

Link to comment
Share on other sites

Glen, he's receiving that error because he doesn't have a state selected in his account settings. This module is very US centric.

 

Then I'm going to have to look at it more closely, as a large percentage of my customers live outside the US. All transactions are in US Dollars, though, so it shouldn't be an issue.

 

In any case, there should be a definition for MODULE_PAYMENT_PAYPAL_DP_TEXT_STATE_ERROR in the language file.

 

--Glen

Link to comment
Share on other sites

Then I'm going to have to look at it more closely, as a large percentage of my customers live outside the US. All transactions are in US Dollars, though, so it shouldn't be an issue.

 

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.

 

In any case, there should be a definition for MODULE_PAYMENT_PAYPAL_DP_TEXT_STATE_ERROR in the language file.

 

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

 

Until then, you can put this in your /catalog/includes/languages/english/modules/payment/paypal_wpp.php file:

define('MODULE_PAYMENT_PAYPAL_DP_TEXT_STATE_ERROR', 'The state assigned to your account is not valid. Please go into your account settings and change it.');

 

Ha! I'm not the only one! Brian?

 

I'm guessing that my server already had a base set of PEAR modules installed and your servers don't. Is that PEAR.php file the only one that seems to be missing?

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

		$caller =& Services_PayPal::getCallerServices($profile); //Create a caller object.  Ring ring, who's there?
	$caller->setOpt('curl', CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
	$caller->setOpt('curl', CURLOPT_PROXY, "https://64.202.165.130:3128");
	$caller->setOpt('curl', CURLOPT_SSL_VERIFYPEER, FALSE);
	$caller->setOpt('curl', CURLOPT_TIMEOUT, 60);

 

Thanks, I'll put it into the codebase. Be sure to change "http" to "https" though.

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

I'm guessing that my server already had a base set of PEAR modules installed and your servers don't. Is that PEAR.php file the only one that seems to be missing?

 

My server has a base set of PEAR modules installed, but it's outside of my catalog tree and I don't really have access to it. Since it doesn't include the PayPal SDK stuff, for simplicity I uploaded the PEAR modules to my catalog folder.

 

As for missing files in the pear tree (ha!), that's the only one that I've noticed.

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

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!

Link to comment
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:

An error occured when we tried to process your credit card.

 

Transaction cannot complete.

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

 

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):

 

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

 

and then this error after attempting order completion:

An error occured when we tried to process your credit card.

 

Shipping Address Invalid City State Postal Code

A match of the Shipping Address City, State, and Postal Code failed. (10736)

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:

An error occured when we tried to process your credit card.

 

Transaction cannot complete.

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

 

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.

 

 

 

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

 

 

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.

 

IMO it underminds the security of YOUR store, making it sound as if the store itself isnt secure unless you use paypal payment method.

 

Thanks for any and all help! :thumbsup:

Link to comment
Share on other sites

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.

 

Not that I know of. Those statements come directly from on high. But if you change them, who will know?

 

You can add the word "secure" to the description of your other options.

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

First, let me say you guys are doing a great jub supporting this contrib. It is appreicated! (has to be said, at least, I have read through this board for two days great info)

 

Unfortunately, I have not been about to resolve my current error:

 

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

 

 

()

 

I have set my timeout setting to 600

I have downloaded my cert from Pay Pal

I have uploaded my cert to /catalog/includes/modules/payment/wpp_cert/

I have verified in the module that the path to the cert is correct

I have entered in my API username and API password, which is of course different from the reg PayPal UN and PW

Currently I am working in the live environment.

And I get the error when I click the express checkout, direct payment does not go to paypal either.

 

Are there any steps I left out or missed?

 

I feel like I am so close. Any help would be great!

 

 

 

P.S. I had to download pear.php and upload it separately as well.

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