cancel
Showing results for 
Search instead for 
Did you mean: 

GetExpressCheckoutDetails does not contain payer information (email, payer id, etc)

SOLVED
Member

GetExpressCheckoutDetails does not contain payer information (email, payer id, etc)

Hello
When I do my ExpressCheckout payment, I make GetExpressCheckoutDetails request to receive user's details first.
But sometimes GetExpressCheckoutDetails response does not contain member's info at all - there are no email, payer id, address, names. 

Does anybody have ideas how to explain and possibly fix that?

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions
Volunteer Advisor

Re: GetExpressCheckoutDetails does not contain payer information (email, payer id, etc)

It looks like the GECD request is happening without the user having actually signed in to PayPal and clicked the button to continue back to your site. We see PaymentActionNotInitiated, and that's the only way I can think that GECD would be returning a response without that info...if you just called SEC and then passed that token into GECD right away without redirecting to PayPal first.

You need to call SEC, redirect to PayPal so the user can login, and then call GECD from your return URL. One way or another that seems to be getting skipped..??

Angell EYE - www.angelleye.com
PayPal Partner and Certified Developer - Kudos are Greatly Appreciated!
5 REPLIES
Volunteer Advisor

Re: GetExpressCheckoutDetails does not contain payer information (email, payer id, etc)

You would need to provide an example of one of these responses where this information was missing. What you're saying doesn't make sense, really. You need the Payer ID in order to finalize with DoExpressCheckoutPayment, so it has to be included in GECD.

You could be using "useraction=commit" in which case the PayerID would come back in the return URL so that you don't even have to call GECD if you don't want to, but in my experience that wouldn't cause GECD to return empty.

I can't think of any other scenario that could possibly cause that, so again, need to see an example of a raw response where this occurred.

Angell EYE - www.angelleye.com
PayPal Partner and Certified Developer - Kudos are Greatly Appreciated!
Highlighted
Member

Re: GetExpressCheckoutDetails does not contain payer information (email, payer id, etc)

Thanks for reply, Angell

Here is an example (I've hidden private info, plus all data is escaped, b/c taken from logs):

1) SetExpressCheckout

Request: Array 

(

    [CANCELURL] => ******************** 

    [RETURNURL] => ********************

    [PAYMENTREQUEST_0_CUSTOM] => ********************  

    [PAYMENTREQUEST_0_AMT] => 77.00

    [PAYMENTREQUEST_0_DESC] => ********************

    [CURRENCYCODE] => USD

    [LANDINGPAGE] => Login

)

Response: Array

(

    [0] => TOKEN=********************

    [1] => TIMESTAMP=2018%2d09%2d11T06%3a19%3a53Z

    [2] => CORRELATIONID=879c2ab88b7e4

    [3] => ACK=Success

    [4] => VERSION=109%2e0

    [5] => BUILD=48666477

2) GetExpressCheckoutDetails

Request: Array

    [TOKEN] => ********************

)

Response: Array

    [0] => TOKEN=********************

    [1] => BILLINGAGREEMENTACCEPTEDSTATUS=0

    [2] => CHECKOUTSTATUS=PaymentActionNotInitiated

    [3] => TIMESTAMP=2018%2d09%2d11T06%3a20%3a19Z

    [4] => CORRELATIONID=39b4b3e292643

    [5] => ACK=Success

    [6] => VERSION=109%2e0

    [7] => BUILD=48666477

    [8] => CURRENCYCODE=USD

    [9] => AMT=77%2e00

    [10] => SHIPPINGAMT=0%2e00

    [11] => HANDLINGAMT=0%2e00

    [12] => TAXAMT=0%2e00

    [13] => CUSTOM=********************

    [14] => DESC=********************

    [15] => INSURANCEAMT=0%2e00

    [16] => SHIPDISCAMT=0%2e00

    [17] => PAYMENTREQUEST_0_CURRENCYCODE=USD

    [18] => PAYMENTREQUEST_0_AMT=77%2e00

    [19] => PAYMENTREQUEST_0_SHIPPINGAMT=0%2e00

    [20] => PAYMENTREQUEST_0_HANDLINGAMT=0%2e00

    [21] => PAYMENTREQUEST_0_TAXAMT=0%2e00

    [22] => PAYMENTREQUEST_0_CUSTOM=********************

    [23] => PAYMENTREQUEST_0_DESC=********************

    [24] => PAYMENTREQUEST_0_INSURANCEAMT=0%2e00

    [25] => PAYMENTREQUEST_0_SHIPDISCAMT=0%2e00

    [26] => PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED=false

    [27] => PAYMENTREQUEST_0_ADDRESSNORMALIZATIONSTATUS=None

    [28] => PAYMENTREQUESTINFO_0_ERRORCODE=0                                                                                                                                       

)

 

That's all. Usually I have customer's details in last response and I can finish payment.

But there is a client with a response like above. And by the way, several days before the issue starts, he was able to pay - his response was with customer's details too. 

Volunteer Advisor

Re: GetExpressCheckoutDetails does not contain payer information (email, payer id, etc)

It looks like the GECD request is happening without the user having actually signed in to PayPal and clicked the button to continue back to your site. We see PaymentActionNotInitiated, and that's the only way I can think that GECD would be returning a response without that info...if you just called SEC and then passed that token into GECD right away without redirecting to PayPal first.

You need to call SEC, redirect to PayPal so the user can login, and then call GECD from your return URL. One way or another that seems to be getting skipped..??

Angell EYE - www.angelleye.com
PayPal Partner and Certified Developer - Kudos are Greatly Appreciated!
Member

Re: GetExpressCheckoutDetails does not contain payer information (email, payer id, etc)

I guess you are right... 
Of course I redirect a user to PayPal after receiving a token. But I was able to repeat the issue when I clicked "Cancel and return" without logging to PayPal account. Then my code made a GetExpressCheckoutDetails request anyway, and that's was a problem.

Thank you much for your help!

Volunteer Advisor

Re: GetExpressCheckoutDetails does not contain payer information (email, payer id, etc)

Yup, that'll do it. Best to make sure you aren't calling GECD when the cancel link is clicked. Should use separate URLs for cancel and return URL, or at least separate logic for each type within the URL you're using.

Glad you got it figured out!
Angell EYE - www.angelleye.com
PayPal Partner and Certified Developer - Kudos are Greatly Appreciated!