Jump to content


Corporate Sponsors


Latest News: (loading..)

* * * * * 12 votes

PayPal WPP Direct Payments & Express Checkout Support


4282 replies to this topic

#4261 shamell

  • Community Member
  • 2 posts
  • Real Name:kunle

Posted 18 November 2010, 18:39

when i try and purchase using paypal express from checkout or cart i get this error couldn't connect to host (Error No. 7)
someone please help

#4262 skubik

  • Community Member
  • 1 posts
  • Real Name:Shawn Kubik

Posted 30 November 2010, 23:05

Uninstalled. Wasted enough time debugging the module myself & waiting endlessly for the developer to assist with a solution. PayPal Website Payments Pro & PayPal Express Checkout modules worked fine the 1st time.

(edit: seems I have 2 accts on this board & posted from the wrong one. oops
- gotkube)

Edited by skubik, 30 November 2010, 23:10.


#4263 cheapo

  • Community Member
  • 23 posts
  • Real Name:Mike G

Posted 02 December 2010, 18:16

I need some advice and help....

I was using a payflow pro module until I needed to become PCI compliant. I went the easy route 3 months ago and changed to Payflow link and had the module working (including the silent post so if the person didn't click the final link the order still would get recorded). But in the last two months the silent post option quit working......

So I am again looking back at other modules.

So what I am looking for is information.... A while back I was using payflow pro. Then changed to link so credit card info wouldn't be collected on my site but paypals.... Is this contrib able to be used for payflow link or pro, or is it just for the normal paypal processing?

I am sorry if I am asking questions that may have been answered but I have just spent 7 days working on the payflow link contrib trying to figure out why it quite working and I am brain dead and now looking for other solutions.

Mike

Edited by cheapo, 02 December 2010, 18:17.


#4264 dmcentire

  • Community Member
  • 5 posts
  • Real Name:Dennis McEntire

Posted 09 February 2011, 09:51

I'm going a little crazy here. My primary OSC server died so I am trying to get a backup site running on another box. All is well except for the WPP module - it gets a blank screen and generates an error:

curl_exec error 52 GnuTLS recv error (-9): A TLS packet with unexpected length was received.

This error appears in a file in the /tmp directory on the server. I actually get four when testing the site during checkout:

Feb 09 01:41:05 my_paypal_username [info] DoDirectPayment, Elapsed: 389ms
Feb 09 01:41:05 my_paypal_username [error] curl_exec error 52 GnuTLS recv error (-9): A TLS packet with unexpected length was received.
Feb 09 01:41:06 my_paypal_usernam [info] TransactionSearch, Elapsed: 300ms
Feb 09 01:41:06 my_paypal_usernam [error] curl_exec error 52 GnuTLS recv error (-9): A TLS packet with unexpected length was received.

I checked my certificate and other PP credentials. Curl is installed. The PEAR modules are installed. No suhosin patch is loading. No error logs are generated by Apache.

Thank you in advance for any advice!

Dennis McEntire

#4265 dmcentire

  • Community Member
  • 5 posts
  • Real Name:Dennis McEntire

Posted 09 February 2011, 21:37

Solved it -- If anyone else comes across this problem just adding one line fixes it.

Edit /catalog/includes/modules/payment/paypal_wpp.php

Around line 330:

$caller->setOpt('curl', CURLOPT_SSL_VERIFYPEER, 0);
$caller->setOpt('curl', CURLOPT_TIMEOUT, 180);
$caller->setOpt('curl', CURLOPT_SSL_VERIFYHOST, 0);

// Dennis McEntire Feb 2011 - Fixes curl_exec error 52 problem
$caller->setOpt('curl', CURLOPT_SSLVERSION, 3);

Just adding that last line solves the problem.

Hope this helps someone else.

Dennis McEntire

#4266 Mazi

  • Community Member
  • 16 posts
  • Real Name:Marcel M.

Posted 11 February 2011, 13:08

View Postbbaez, on 03 November 2010, 01:31, said:

The following fixed "PayPal returned invalid or incomplete data to complete your order. Please try again or select an alternate payment method."
<       if (!preg_match("([C-E]{2})-([A-Z0-9]{17})", $_SESSION['paypal_ec_token'])) {
---
>       if (!preg_match("/([C-E]{2})-([A-Z0-9]{17})/", $_SESSION['paypal_ec_token'])) {

The following fixed "Unfortunately the country of the address you selected is not currently one that we offer service to. If you have any questions, please feel free to contact us." $billing_address is being set to FALSE if no billing address is returned, so the statement will always be true.
<         if (isset($billing_address)) {
---
>         if (is_array($billing_address) &! empty($billing_address)) {
I just want to confirm that the changes aboved solved the errors mentioned at my 1.0.0 version.

Though no payment details are shown at paypals overview screen and the download doesn't show up after payment. Do you think I should update to the latest Paypal Website Payments Pro version (Link?) ?

#4267 longhorn1999

  • Community Member
  • 318 posts
  • Real Name:Nick
  • Gender:Male
  • Location:Texas

Posted 29 June 2011, 02:30

Hi,

This thread appears to be dead after years of support, but I had a question still.

I had to revert back to the original includes/modules/payment/paypal_wpp.php from the latest installation package after making changes to the file from github (7/2010). These changes converted the pregs to eregs, but also stopped PayPal Express from working.

This file has several pregs in it. My host isn't planning on upgrading to php 5.3 anytime soon, but just in case, has anyone modified this file to be 5.3 compatible?

#4268 lei_tx

  • Community Member
  • 11 posts
  • Real Name:Terry
  • Gender:Male

Posted 19 September 2011, 15:48

I installed version 10 Apr 2010

I got this error when I going to install it at administration section -> Module -> Payment


Warning: Call-time pass-by-reference has been deprecated in /home/content/****/html/includes/modules/payment/paypal_wpp.php on line 1608

Warning: Call-time pass-by-reference has been deprecated in /home/content/****/html/includes/modules/payment/paypal_wpp.php on line 2190

Warning: Call-time pass-by-reference has been deprecated in /home/content/****/html/includes/modules/payment/paypal_wpp.php on line 2192

Warning: Cannot modify header information - headers already sent by (output started at /home/content/***/html/includes/modules/payment/paypal_wpp.php:1608) in /home/content/***/html/admin/includes/functions/general.php on line 91

#4269 georgecvsc

  • Community Member
  • 17 posts
  • Real Name:George Mouchet

Posted 19 September 2011, 17:23

Received the following from PayPal. Does anyone think it will require changes to this module? Does the module verify the PayPal IP address? If so, then the third item would require a change.

Please be sure to share this notification with your technical resources because network configuration changes may be necessary to avoid a disruption in service. Please note that there is also information regarding a short service interruption for Payflow on October 1st.

Date

Impact Description


Customers and Products Impacted

IMPORTANT – Action Required
September 29

IP Address Expansion


PayPal Notification:
https://www.x.com/content/ip-address-expansion-paypal-services

IPN Customers who have their IPN Listener script behind their firewall with hard-coding of IP Addresses or use of Access Control List management of IP addresses

To avoid an interruption in IPN support, customer must either:
Continue to post back to https://www.paypal.com and update access control list to allow outbound access to ANY IP address for the servers that host our IPN script.
OR
Modify the IPN script to post back IPNs to the newly created URL https://ipnpb.paypal.com using HTTPS (port 443) and update firewall access control list rules to allow outbound access to the ipnpb.paypal.com IP ranges
October 1
Server upgrade that requires 3 minutes of downtime starting between 11 PM PDT – 11:05 PM PDT for Payflow Gateway customers

PayPal Notification:
https://www.x.com/developers/paypal/documentation-tools/site-status/notification-planned-downtime-during-oct-01-maintenance-pf-live-2263
Customers using Payflow Pro, Payflow Link, V2 Payflow, Websites Payments Pro (3.0) using Gateway credentials and Website Payments Pro Payflow Edition (2.0)
For impacted transactions that are not reattempted due to the connection being unavailable, the API calls would need to be resubmitted for processing.
November 15
IP Address Expansion

PayPal Notification:
https://www.x.com/content/ip-address-expansion-paypal-services

API Customers, including Express Checkout, Websites Payments Pro (3.0) and Website Payments Pro Payflow Edition (2.0), who either hard code outbound IP addresses or use an Access Control List.
You must either point to DNS or update access control list with newly added IP addresses to avoid an interruption in service. While these changes must be made by early March, 2012, we strongly encourage you to make any necessary updates by November 15th 2011 as this will help minimize any potential disruptions during the holiday season.



Edited by georgecvsc, 19 September 2011, 17:25.


#4270 dougdevoe

  • Community Member
  • 13 posts
  • Real Name:Doug

Posted 22 September 2011, 21:07

I was testing my website by sending transactions to Sandbox and everything was working great one day and then the next day I couldn't even get PayPal transaction page to load ..... instead, checkout_payment.php would simply timeout and redirect me back to shopping_cart.php page with the url (http://www.mysite.com/shopping_cart.php?error_message=). Nothing is displayed as an error in the URL line.

I have then tracked down where the redirect is happening in "express.php"

The line of code that is causing this to occur is:

if (($response_array['ACK'] == 'Success') || ($response_array['ACK'] == 'SuccessWithWarning')) {
tep_redirect($paypal_url . '&token=' . $response_array['TOKEN'] . '&useraction=commit');
} else {
tep_redirect(tep_href_link(FILENAME_SHOPPING_CART, 'error_message=' . stripslashes($response_array['L_LONGMESSAGE0']), 'SSL'));
}

break;

-----------------------
Can anyone tell me what exactly is causing my problem and why it falls to the "redirect" instead of going to PayPal? I'm new to OsCommerce so simple and easy to understand replies would be greatly appreciated.

Thanks in advance for the quick help.

Doug

#4271 Escaping

  • Community Member
  • 15 posts
  • Real Name:Art

Posted 25 September 2011, 00:28

Hi All,

My installation of this contrib that had been working for over a year suddenly stopped working 2 days ago. Symptoms of this issue might vary between web hosts, but in my case, when pressing the button for Express Checkout the customer is directed to an error on PayPal (no code) that basically just states the operation failed. This is previous to any login attempt. PayPal techs informed me that variable names were being passed to PayPal rather than the data that was supposed to be contained. For example, the customer name would be something along the line of PAYPAL_NAME. Naturally, if the customer hasn't logged in yet, there is no data for these fields so the variable passed to PayPal should simply be null.

The contrib has worked despite this issue for quite a while. I assume a recent change at PayPal might be the problem, but it may have been an update at my web host. I found a little omission in the logic in includes/modules/payment//paypal_wpp.php. Search for line if (MODULE_PAYMENT_PAYPAL_EC_ADDRESS_OVERRIDE == 'Store' && . Subsequent codes check for the data we're talking about, and if it is missing, sets the address override to "0". The omission was that variables are only set if override is "1", if override is "0", variables aren't set at all. I've just added a small bit to set the vars to null in that instance. For my install, that took care of the issue and actually fixed another problem I had just lived with for the last year or so.

The address override in admin should be set to PayPal, not store. If you like store, well you're on your own. Otherwise, usual disclaimers apply as I'm not a programmer.

Find:

/* Don't override if the state is missing (Avoid 10729 errors) */
if ($order_info['PAYPAL_ADDRESS_OVERRIDE'] == '1' && $order_info['PAYPAL_STATE'] == '') {
$order_info['PAYPAL_ADDRESS_OVERRIDE'] = '0';
$order_info['PAYPAL_NAME'] = '';
$order_info['PAYPAL_ADDRESS1'] = '';
$order_info['PAYPAL_ADDRESS2'] = '';
$order_info['PAYPAL_CITY'] = '';
$order_info['PAYPAL_STATE'] = '';
$order_info['PAYPAL_ZIP'] = '';
$order_info['PAYPAL_COUNTRY'] = '';

}

Insert immediately after:



/* If Address Override == "0", send null vars to Paypal (was sending Var Names instead) */
if ($order_info['PAYPAL_ADDRESS_OVERRIDE'] == '0') {

$order_info['PAYPAL_NAME'] = '';
$order_info['PAYPAL_ADDRESS1'] = '';
$order_info['PAYPAL_ADDRESS2'] = '';
$order_info['PAYPAL_CITY'] = '';
$order_info['PAYPAL_STATE'] = '';
$order_info['PAYPAL_ZIP'] = '';
$order_info['PAYPAL_COUNTRY'] = '';

}

That's it. Hope it saves someone some time.


Edited by Escaping, 25 September 2011, 00:33.


#4272 Zebrabanana

  • Community Member
  • 72 posts
  • Real Name:Peter
  • Gender:Male

Posted 27 September 2011, 10:33

Hi Escaping!

Thank you so much, I don't think I would have ever got there myself, been banging my head against the wall with PayPal tech support not making any sense.
You have saved me some time, thanks thank thanks!

Peter
Thanking God for a beautiful day  

#4273 Nikolai

  • Community Member
  • 54 posts
  • Real Name:Nik
  • Gender:Male

Posted 27 September 2011, 13:29

I would be most grateful if someone could shed light on how to change the Express Checkout scripts to make them do the following.

1. Send line item details along with SetExpressCheckout API call to force PayPal's checkout page to display order information to buyers.

2. Submit GetExpressCheckoutDetails to get customers' shipping addresses before they confirm their orders after returning from PayPal.

#4274 ollyno1uk2

  • Community Member
  • 325 posts
  • Real Name:olly
  • Location:UK

Posted 28 September 2011, 17:52

Hi

does anyone else have an issue whereby express checkout no longer works and redirects to a screen stating

Sorry — your last action could not be completed


This is a UK site.

Thanks a lot

#4275 ollyno1uk2

  • Community Member
  • 325 posts
  • Real Name:olly
  • Location:UK

Posted 29 September 2011, 07:37

apologies but realised my post was answered by Escaping above - thanks a lot for that!

#4276 trauko

  • Community Member
  • 9 posts
  • Real Name:Carlos
  • Gender:Male
  • Location:United Kingdom

Posted 02 October 2011, 01:05

My orders are nor getting through Paypal!!!
.I have 2.3 Oscommerce, SSL certified site.
. I have installed Paypal Express and PayPal Website Payments Pro (Payflow Edition) - Direct Payments.
. Everything it's working fine when I press the checkout buttons in either options, taking me to the paypal pages with my own logos.
. I can enter all the data asked by paypal, then shows me the final order and prompt me to confirm.
. when I confirm, the Modules send me back to an empty cart page, not to the payment_success page.
. There is no orders confirmation in my side. No errors displayed, no information nothing..
. I am go into my paypal account and there is no order. No charges, no debits..

Any Ideas somebody??? Thanks very much for your help in advance...

#4277 chrisholgate

  • Community Member
  • 15 posts
  • Real Name:Chris Holgate
  • Gender:Male
  • Location:Paignton

Posted 04 October 2011, 22:50

I had to sign up to this forum simply to give Escaping a massive thank-you for posting this solution. After having two web designers shrug their shoulders at the way around the 'sorry, your last action could not be completed' problem that we started to experience I thought I'd sit down with Google and a beer to see if I could muddle may way through and up this post came.

I’ve got absolutely no programming experience and you've allowed me to fix our site; thanks again.

#4278 giz286sim

  • Community Member
  • 40 posts
  • Real Name:J

Posted 07 October 2011, 16:10

Thank you Escaping. Your post fixed the carts of a few of my clients.

Unfortunately this is a prime example of why I have been setting up my clients on other shopping carts over the last few months - there is no support team behind these contributions and the original programmers always seem to eventually lose interest and disappear. The payment module for a site is one of the worst things to have not working. Luckily Escaping posted a solution, but what about next time?

#4279 RoboSavvy

  • Community Member
  • 1 posts

Posted 10 October 2011, 09:49

Hi all

We've also been experiencing the same symptoms as Escaping (Express Checkout not working with the dynamoeffects contribution) and opened a Paypal ticket.
We're posting this information here to help others who may be experiencing the same symptomps. The exchange of messages with Paypal is the following:

REQUEST 1317742372
 
 
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
  <RequesterCredentials xmlns="urn:ebay:api:PayPalAPI">
	<Credentials xmlns="urn:ebay:apis:eBLBaseComponents">
	  <Username>ebay_api1.robosavvy.com</Username>
	  <Password>297NDQBJLDPTEUWW</Password>
	</Credentials>
  </RequesterCredentials>
</soap:Header>
<soap:Body>
  <SetExpressCheckoutReq xmlns="urn:ebay:api:PayPalAPI">
	<SetExpressCheckoutRequest>
	  <Version xmlns="urn:ebay:apis:eBLBaseComponents">2.0</Version>
	  <SetExpressCheckoutRequestDetails xmlns="urn:ebay:apis:eBLBaseComponents">
		<OrderTotal currencyID="GBP">1.90</OrderTotal>
		<ReturnURL>https://robosavvy.com/store/login.php/action/express_checkout</ReturnURL>
		<CancelURL>https://robosavvy.com/store/login.php/ec_cancel/1</CancelURL>
		<ReqConfirmShipping>1</ReqConfirmShipping>
		<NoShipping>0</NoShipping>
		<AddressOverride>0</AddressOverride>
		<LocaleCode>US</LocaleCode>
		<PageStyle></PageStyle>
		<cpp-header-image></cpp-header-image>
		<cpp-header-border-color></cpp-header-border-color>
		<cpp-header-back-color></cpp-header-back-color>
		<cpp-payflow-color></cpp-payflow-color>
		<PaymentAction>Sale</PaymentAction>
[b]	    [u]<Address>[/u][/b]
[b]		  <Name>PAYPAL_NAME</Name>[/b]
[b]		  <Street1>PAYPAL_ADDRESS1</Street1>[/b]
[b]		  <Street2>PAYPAL_ADDRESS2</Street2>[/b]
[b]		  <CityName>PAYPAL_CITY</CityName>[/b]
[b]		  <StateOrProvince>PAYPAL_STATE</StateOrProvince>[/b]
[b]		  <PostalCode>PAYPAL_ZIP</PostalCode>[/b]
[b]		  <Country>PAYPAL_COUNTRY</Country>[/b]
[b]	    [u]</Address>[/u][/b]
	  </SetExpressCheckoutRequestDetails>
	</SetExpressCheckoutRequest>
  </SetExpressCheckoutReq>
</soap:Body>
</soap:Envelope>


RESPONSE 1317742373
 
 
Array
(
	[Security] =>
	[RequesterCredentials] => Array
		(
			[0] => Array
				(
					[Credentials] => Array
						(
							[0] => Array
								(
									[Username] =>
									[Password] =>
									[Signature] =>
									[Subject] =>
								)
 
						)
 
				)
 
		)
 
	[SetExpressCheckoutResponse] => Array
		(
			[0] => Array
				(
					[Timestamp] => 2011-10-04T15:32:54Z
[b]				    [u][Ack] => Success[/u][/b]
					[CorrelationID] => ce5d1cb4e4008
					[Version] => 2.0
					[Build] => 2133933
[b]				    [u][Token] => EC-58A522101D272430B[/u][/b]
				)
 
		)
 
)


So you can see Paypal seems to be correctly accepting the message we're sending them, although the <address> section is incorrectly filled (ie in our setup we're not overriding the Paypal address).

However, when we then redirect people to Paypal with token we've received (to https://www.paypal.c...A522101D272430B ) we get an error saying: "Sorry — your last action could not be completed"


After contacting Paypal tehc Support they said the <address> is sending invalid information and needs to be removed. To fix this you either use user "Escaping" solution (posted above) or take our approach which was to go to the model XML files:

- Go to: /catalog/includes/paypal_wpp/xml
- Find setExpressCheckut.xml
(this file is the model file used to start the ExpressCheckout process)
- Make a copy of this file and save in case you need it (ie copy it to setExpressCheckout.xml.original )

- Open setExpressCheckut.xml
- Delete the whole section between <address> and </address> and Sae

This will immediatelly fix the issue.

Do note that with this approch if you later wish to use the OSCommerce stored address instead of Paypal's address, you'll need to reverse this procedure.

I really think the developper should update the contibution if he has the opportunity: either by re arranging the code or by using 2 different XML files for setExpressCheckout: one when we want to use the Paypal addresss (wihtout the <address> section) and another when you want to use the OSC address (that includes the <address> section).

We've been loosing quite an amount of business because of this.

Pay attention/be careful because this is a silent bug. It will not generate any errors on the store end (ie from the contribution's point of view there is no error; this is also partly Paypal's fault as they should be throwing the eror at th first contact and nto wait for customers to get to Paypal to thow the error).

The only way you can find out about it is if you start noticing you're not receiving Express Checkout Payments.

Regards
Pedro.

Edited by RoboSavvy, 10 October 2011, 09:54.


#4280 Measha06

  • Community Member
  • 206 posts
  • Real Name:Liz Wagner
  • Gender:Female
  • Location:UK

Posted 20 October 2011, 22:50

I have this year rebuilt my osCommerce site and am having problems with PayPal Pro UK Express checkout. I have installed the modules PayPal Website Payments Pro (Payflow Edition) - Express Checkout and also PayPal Website Payments Pro (Payflow Edition) - Direct Payment. I have an SSL licence applied and the Direct payment seems to work fine but the express does not work at all. Firstly there is no express buttom under the 'checkout or' as it should after adding an item in the basket. So if you go through checkout and them make PayPal as a choice of payment you then get an error message.Error a general problem has occured with the transaction. Please try later. No matter how many times you try it remians the same. I would appreciate some help as PayPAl say it is an oscommerce fault and they do not technically support any issues involving osCommerce!
Liz

A very appreciative member still attempting to climb the steep learning curve!