0

I'm calling the PayPal sandbox with a 'express checkout' process from a java web application. The first call ('SetExpressCheckout') succeeds and I receive a Token as expected.

The second call ('GetExpressCheckoutDetails') succeeds as well in regard to getting an ACK=Success answer. But there is all the payer information data like FIRSTNAME, LASTNAME or SHIPTOCITY missing.

Here's the URL I'm calling with parameters:

https://api-3t.sandbox.paypal.com/nvp?TOKEN=__MY_TOKEN__&VERSION=106.0&SIGNATURE=__MY_SIGNATURE__&METHOD=GetExpressCheckoutDetails&PWD=__MY_PASSWORD__&USER=__MY_USERNAME__

Here's the response's body I get:

TOKEN=__MY_TOKEN__&CHECKOUTSTATUS=PaymentActionNotInitiated&TIMESTAMP=2013%2d09%2d11T20%3a56%3a36Z&CORRELATIONID=bb3916c14aa78&ACK=Success&VERSION=106%2e0&BUILD=7645184&CURRENCYCODE=USD&AMT=12%2e00&SHIPPINGAMT=0%2e00&HANDLINGAMT=0%2e00&TAXAMT=0%2e00&INSURANCEAMT=0%2e00&SHIPDISCAMT=0%2e00&PAYMENTREQUEST_0_CURRENCYCODE=USD&PAYMENTREQUEST_0_AMT=12%2e00&PAYMENTREQUEST_0_SHIPPINGAMT=0%2e00&PAYMENTREQUEST_0_HANDLINGAMT=0%2e00&PAYMENTREQUEST_0_TAXAMT=0%2e00&PAYMENTREQUEST_0_INSURANCEAMT=0%2e00&PAYMENTREQUEST_0_SHIPDISCAMT=0%2e00&PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED=false&PAYMENTREQUEST_0_ADDRESSNORMALIZATIONSTATUS=None&PAYMENTREQUESTINFO_0_ERRORCODE=0

If I put the same request URL into Firefox I receive the response I would expect:

TOKEN=__MY_TOKEN__&CHECKOUTSTATUS=PaymentActionNotInitiated&TIMESTAMP=2013%2d09%2d11T20%3a37%3a31Z&CORRELATIONID=7804316ba643d&ACK=Success&VERSION=106%2e0&BUILD=7645184&EMAIL=mne%2dcustomer2%40m%2dn%2de%2ede&PAYERID=QRZ57KR8PHVF4&PAYERSTATUS=verified&FIRSTNAME=Frank&LASTNAME=Forest&COUNTRYCODE=US&SHIPTONAME=Frank%20Forest&SHIPTOSTREET=1%20Main%20St&SHIPTOCITY=San%20Jose&SHIPTOSTATE=CA&SHIPTOZIP=95131&SHIPTOCOUNTRYCODE=US&SHIPTOCOUNTRYNAME=United%20States&ADDRESSSTATUS=Confirmed&CURRENCYCODE=USD&AMT=15%2e00&SHIPPINGAMT=0%2e00&HANDLINGAMT=0%2e00&TAXAMT=0%2e00&INSURANCEAMT=0%2e00&SHIPDISCAMT=0%2e00&PAYMENTREQUEST_0_CURRENCYCODE=USD&PAYMENTREQUEST_0_AMT=15%2e00&PAYMENTREQUEST_0_SHIPPINGAMT=0%2e00&PAYMENTREQUEST_0_HANDLINGAMT=0%2e00&PAYMENTREQUEST_0_TAXAMT=0%2e00&PAYMENTREQUEST_0_INSURANCEAMT=0%2e00&PAYMENTREQUEST_0_SHIPDISCAMT=0%2e00&PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED=false&PAYMENTREQUEST_0_SHIPTONAME=Frank%20Forest&PAYMENTREQUEST_0_SHIPTOSTREET=1%20Main%20St&PAYMENTREQUEST_0_SHIPTOCITY=San%20Jose&PAYMENTREQUEST_0_SHIPTOSTATE=CA&PAYMENTREQUEST_0_SHIPTOZIP=95131&PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE=US&PAYMENTREQUEST_0_SHIPTOCOUNTRYNAME=United%20States&PAYMENTREQUEST_0_ADDRESSSTATUS=Confirmed&PAYMENTREQUEST_0_ADDRESSNORMALIZATIONSTATUS=None&PAYMENTREQUESTINFO_0_ERRORCODE=0

This expected answer contains PAYERID, FIRSTNAME, LASTNAME, SHIPTOSTREET, SHIPTOCITY etc.

I tried calling the PayPal sandbox from java using

  • Apache HttpClient GET request
  • Apache HttpClient POST request
  • javax.net.ssl.HttpsURLConnection
  • java.net.URLConnection

I tried running the webapp in JBoss 7.1.1 on mac OS X and JBoss 7.2.0 on win8.

I also tried putting the port number in the URL explicitly (https://api-3t.sandbox.paypal.com:443)

The result is always the same. The payer information (name, address) is missing when I call it from java.

Has anyone got an idea what is wrong?

UPDATE: Calling the PayPal sandbox from Eclipse (Apache HttpClient GET request) returns the correct response. So I assume this might have something to do with JBoss AS.

Vincent
  • 470
  • 6
  • 13

1 Answers1

0

After you call SetExpressCheckout, you have to redirect the buyer to PayPal (https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=__MY_TOKEN__) and have them log in and approve the payment. After they've done that and returned to your website, then call GetExpressCheckoutDetails to retrieve their information.

Matt Cole
  • 2,552
  • 1
  • 13
  • 21
  • Thank you Matt, I actually had the wrong order of 1. SetExpressCheckout 2. GetExpressCheckoutDetails 3. Redirect user to PayPal. Correct is 1. SetExpressCheckout, 2. Redirect user to PayPal, 3. GetExpressCheckoutDetails after return to my page. – Vincent Sep 12 '13 at 00:15
  • Using the sandbox - as done by Vincent - I woudl suggest redirecting to the Sandbox URL: `https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=__MY_TOKEN__` – Tom Fink Aug 27 '14 at 09:51