Jump to content
Sign in to follow this  
dynamoeffects

PayPal WPP Direct Payments & Express Checkout Support

Recommended Posts

OK, ignore my last reply. I figured it out, although I nearly jumped out a fourth floor window before finding my answer. The GoDaddy CURL Proxy address that I'd been using in older websites had apparently been updated to this: http://proxy.shr.secureserver.net:3128 Ummmm......Godaddy really sucks! So, maybe this was mentioned if I'd read farther back in this thread. But, anyway, sorry to waste anybody's time.

Share this post


Link to post
Share on other sites

Sorry to stack up the replies, but I'm curious to know is there a place where GoDaddy updates the Proxy address for CURL? If it changed, how do you know?

Share this post


Link to post
Share on other sites
Guest

Hey Guys,

 

This is an amazing contribution, i have it fully working however when people purchase virtual items such as gift vouchers etc, when using paypal payment pro which is our most popular payment method we get the following errors come up:

 

Error #1: Invalid Data (10726)
There's an error with this transaction. Please enter a complete shipping address.

Error #2: Invalid Data (10727)
There's an error with this transaction. Please enter an address1 in the shipping address.

Error #3: Invalid Data (10728)
There's an error with this transaction. Please enter a city in the shipping address.

Error #4: Invalid Data (10731)
There's an error with this transaction. Please enter a country in the shipping address.

 

This does not happen when using other payment methods. Could anybody please provide any help or advice on what is actually causing this, and what i need to do in order to fix it please. many thanks and i really really appreciate your help!

Edited by flash902001

Share this post


Link to post
Share on other sites

I just installed the WPP module and am getting the following error:

 

Warning: main(PEAR.php): failed to open stream: No such file or directory in /var/www/html/webstore/includes/modules/payment/paypal_wpp/PayPal.php on line 11

 

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

 

Can somone point me in the right direction?

Share this post


Link to post
Share on other sites

@MikeMike: Make these changes to wpp_diagnostics.php

 

@whelanska: They would announce it and as a customer, you would probably receive an email.

 

@flash902001: Search this thread and there was a fix offered earlier (10-20 pages back). I'll do more testing with virtual products for the next version.

 

@timeline: You didn't include the PEAR files. You're also using PayPal's version of the module, and so you should ask them and they should be able to point you to where to download them. This thread is here to support this module.


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

@timeline: You didn't include the PEAR files. You're also using PayPal's version of the module, and so you should ask them and they should be able to point you to where to download them. This thread is here to support this module.

 

Thanks for the info. I did not realise there were different versions.

Share this post


Link to post
Share on other sites

Hi,

 

First of all, forgive me if this question has been asked before. I have been trying to figure out how to search through the 100+ pages of this topic for my question, but wasn't able to.

 

OK - so I had been using the old PEAR version of this contribution for some time. I saw there had been several updates since my version, particularly the removal of PEAR, so I decided it was a good time to upgrade. I knew that my server had curl on it because I use it regularly in a cron job... but when I upgraded the contribution I saw the "curl not installed" message. And after some research I realized that I needed the curl PHP module installed, not just a curl executable.

 

So my question is, can I get this contribution working without having to recompile PHP?

 

I'm pretty computer savvy, but frankly recompiling PHP on my server is scary and I have several websites running on it... so if there's any way to avoid it I would prefer that path. I would think that there would be some way to execute the curl that I do have instead of going through the PHP module. If so, can someone walk me through the modifications that would be necessary for that?

 

Thanks much!

 

Clarence

Share this post


Link to post
Share on other sites

That's out of the range of support you'll probably find here, unless someone wants to take the time to write it out. But from my experience, compiling in curl support is not as difficult as you're thinking. Use the last use configure switches that you'll find on the phpinfo output and just add the necessary curl switches. If done correctly, your other sites should only be down for a few seconds while you reboot apache.

 

For further support I'd suggest that you try apache/php support forums and read the many HOWTOs available.


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 I managed to recompile PHP with curl support. You're right, it wasn't nearly as bad as I thought it would be.

 

Anyway, now I'm getting a new error. Note that I'm using the same settings that I had when this was installed and working on a previous hosting provider.

 

ec_process.php gives me this error (and actually showed my password and everything in plain text which was unnerving in itself)

array(4) { ["Security"]=> string(0) "" ["RequesterCredentials"]=> array(1) { [0]=> array(1) { ["Credentials"]=> array(1) { [0]=> array(3) { ["Username"]=> string(29) "" ["Password"]=> string(16) "" ["Subject"]=> string(0) "" } } } } ["faultcode"]=> string(15) "SOAP-ENV:Client" ["faultstring"]=> string(48) "Data type '' mismatch in element 'PaymentAction'" }

Warning: Cannot modify header information - headers already sent by (output started at /catalog/includes/modules/payment/paypal_wpp.php:553) in /catalog/includes/functions/general.php on line 34

 

trying to process the credit card w/o express checkout resulted in a "No response from PayPal" error.

 

Any ideas what might be going on here?

Share this post


Link to post
Share on other sites

Hi all!

 

Quick question: When a customer checks out with Express Checkout, I noticed the customer's phone number does not get brought over to the oscommerce side. I actually have to login to Paypal to get their phone number.

 

Is there a fix for this?

 

Thanks!

Share this post


Link to post
Share on other sites

2nd Question:

 

The order / invoice email that gets sent to the customer when they order, has a "Payment Method" field at the very bottom of the email. I noticed a slight problem with this contrib & that field:

 

1) The "Payment Method" field prints out the actual name of the payment module used.... so for this example lets call it " Paypal WPP"

 

2) Lets say a customer does not use the express checkout, and instead pays by inputting his credit card information directly.

 

3) When they place the order, they get the automatic order/invoice email, and at the bottom they see this :

Payment Method

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

Paypal WPP

 

4) Customer then gets concerned because they paid with credit card NOT paypal. (Even though we all know that in the background, paypal actually did process this)

 

So... how can we get that last line to say "Credit / Debit Card" when they use direct pay, and "Paypal Express Checkout" when they pay with Paypal? It would be better to do that than to look at the actual Payment Module installed.

 

Hope you all follow what I am saying.

 

Any advice?

Share this post


Link to post
Share on other sites

Hey Guys,

 

Im currently using this contribution and the Credit Gift Voucher system in the same store, and am having problems upon checkout. ive been told that possibly my problem is ive not applied the "checkout_process.php" fix, could anybody please point me in the right direction of that fix please?

 

Many thanks.

Andy

Share this post


Link to post
Share on other sites

Okay, the module totally works for us and has been working for a couple of months (thank you!!). One thing, the "Order Description" in the PayPal Notification e-mail says something like this:

 

Order placed on August 19, 2007, 9:05 pm by Christine Smith (ID: 9878)

 

We would like it to reference the orders_id.

 

What code would we add to do this? We know very little php.

 

Thanks in advance!

Kelly

Share this post


Link to post
Share on other sites

@casimps: The module should never dump that information to screen. What version of the module are you using? Does PHP also have OpenSSL support compiled in?

 

@phi148: The phone number option is in your PayPal settings. It must be turned on or else Paypal won't return the phone number. To change the visible payment module name, you need to modify your language files in includes/languages/english/modules/payment/paypal_wpp.php

 

@swiftmed: Look in the included checkout_process.php file at where the code has been modified. It involves switching the places of two lines.

 

@kellystee: The order number is not generated until after osCommerce has processed everything and saves it to the database. There are contributions available that will generate an order ID ahead of time, but you would then need to modify the PayPal Pro module to read in that number.


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
@swiftmed: Look in the included checkout_process.php file at where the code has been modified. It involves switching the places of two lines.

 

 

Thanks very much for your reply. i hate to sound absolutely brain dead, but is there any chance you could point out exactly what code needs switching. im really not too good when it comes to coding.

Share this post


Link to post
Share on other sites
Thanks very much for your reply. i hate to sound absolutely brain dead, but is there any chance you could point out exactly what code needs switching. im really not too good when it comes to coding.

 

Thanks, Brian! One more question. . .there is this section of the code:

 

function after_process() {

global $insert_id;

tep_db_query("update ".TABLE_ORDERS_STATUS_HISTORY. " set comments = concat(if(trim(comments) != '', concat(trim(comments), '\n'), ''), 'Transaction ID: ".$this->trans_id."\nPayment Type: ".$this->payment_type."\nPayment Status: ".$this->payment_status.($this->avs != 'N/A' ? "\nAVS Code: ".$this->avs."\nCVV2 Code: ".$this->cvv2 : '')."') where orders_id = ".$insert_id);

}

 

And it inserts information into the Comments section of the order. I commented the section out, but customers were then getting crazy errors. This probably makes sense to someone that can actually read code (that's not me).

 

I want to just not have the information written to the Comments section. How would I do this? Can I just take out lines 3 and 4? Would that then fix my crazy error issue? (Customers are saying they don't get a "Transaction Completed" message. Then I would get this:

 

function after_process() {

global $insert_id;}

 

 

 

Kelly

Edited by kellystee

Share this post


Link to post
Share on other sites
Thanks, Brian! One more question. . .there is this section of the code:

 

function after_process() {

global $insert_id;

tep_db_query("update ".TABLE_ORDERS_STATUS_HISTORY. " set comments = concat(if(trim(comments) != '', concat(trim(comments), '\n'), ''), 'Transaction ID: ".$this->trans_id."\nPayment Type: ".$this->payment_type."\nPayment Status: ".$this->payment_status.($this->avs != 'N/A' ? "\nAVS Code: ".$this->avs."\nCVV2 Code: ".$this->cvv2 : '')."') where orders_id = ".$insert_id);

}

 

And it inserts information into the Comments section of the order. I commented the section out, but customers were then getting crazy errors. This probably makes sense to someone that can actually read code (that's not me).

 

I want to just not have the information written to the Comments section. How would I do this? Can I just take out lines 3 and 4? Would that then fix my crazy error issue? (Customers are saying they don't get a "Transaction Completed" message. Then I would get this:

 

function after_process() {

global $insert_id;}

Kelly

 

Was this comment meant for me or for Brian?

Share this post


Link to post
Share on other sites
@phi148: The phone number option is in your PayPal settings. It must be turned on or else Paypal won't return the phone number. To change the visible payment module name, you need to modify your language files in includes/languages/english/modules/payment/paypal_wpp.php

 

Hi, thanks for the response... however,

 

1 - I do have it turned on in Paypal

 

2 - I think you misunderstood what I am saying. The automatic email that gets sent prints out the name of the Payment Module installed.... not the actual method of payment.

 

If "Paypal WPP" is the name of the module, that is what will print out at the bottom of the email, regardless if the customer paid using the express checkout, or credit card direct pay method.

 

I am suggesting that we change the email to say "Express Checkout" or "Credit Card Direct Payment" rather than printing the name of the module. The reason for this is that I have had customer's complain that they did NOT pay with Paypal... and wonder why the order email says "Paypal WPP". See what I mean?

Edited by phi148

Share this post


Link to post
Share on other sites

@swiftmed: Open up the included checkout_process.php file and search for "//---PayPal WPP Modification START ---//". Then open up your own checkout_process.php file and compare it to the same section of code. Note the difference between two lines and make the change.

 

@kellystee: Something like this:

tep_db_query("update ".TABLE_ORDERS_STATUS_HISTORY. " set comments = concat(trim(comments), '\n') where orders_id = ".$insert_id);

 

@phi148: Regarding the phone number, then you'll need to contact PayPal and ask them why it's not being returned. It currently works fine for me.

 

I understood you perfectly before. Looking at checkout_process.php, it adds $payment_class->title after the billing address in the order email, which if you look at the module, is associated to MODULE_PAYMENT_PAYPAL_DP_TEXT_TITLE, which in the language file by default is, "PayPal Direct Payment". If you modify that line in the language file, it will say whatever you would like. If not, your store's modifications might be getting in the way.


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
Guest

Daft question this and apologies in advance:

 

Does this contri require an SSL certificate on the site?

 

Currently using the Paypal IPN modules which do not need SSL, but this module looks a lot better and I would like to switch.

 

I understand that the IPN moduels do not send any sensitive data from the site to Paypal as it is all entered and processed on the Paypal site. Does this module collect and send sensitive data, thereby requiring and encryption via SSL?

 

Thanks... and apologies again for stupid query!

Share this post


Link to post
Share on other sites

Yes, you will need an SSL certificate to use this module. It does not store credit card information in your store, but will require SSL to secure the transaction from your store to PayPal's site. This is not the same as IPN in that the customer can stay on your site and pay with their credit card.


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

@phi148: I just logged into my PayPal account and I think I see what your issue is. Under Profile -> Website Payment Preferences, the "Contact Telephone Number" has to be set to "On (Required Field)". If it's set to that and you're still not getting the phone number, you need to contact PayPal support.


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
@phi148: I just logged into my PayPal account and I think I see what your issue is. Under Profile -> Website Payment Preferences, the "Contact Telephone Number" has to be set to "On (Required Field)". If it's set to that and you're still not getting the phone number, you need to contact PayPal support.

 

Thanks dynamoeffects for looking into this...

 

I just checked as well, and I do have it set to "On (Required Field)" ... I'll check with Paypal on that.

 

As for the other comment, I still think I'm being unclear.

 

In a nutshell, if a customer pays directly on my website with a credit card ( AKA Direct Pay ), I want the email to say "CREDIT CARD"

 

If they pay with Paypal ( AKA Express Checkout) I want the email to say "PAYPAL EXPRESS CHECKOUT"

 

See what I mean?

 

Changing MODULE_PAYMENT_PAYPAL_DP_TEXT_TITLE only fixes 1/2 my problem. I have already changed that to "CREDIT CARD", however, even if customers pay with Express Checkout, their email still says "CREDIT CARD". :(

 

Thanks again for your patience!! :thumbsup:

Edited by phi148

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  

×