I am working to implement a Paypal Express Checkout. I have setup a Paypal developer and sandbox account including a Personal Sandbox test account to act as the buyer. I am implementing a SOAP solution and so far have been able to complete the following steps
- Submit SetExpressCheckout request
- Use token from SetExpressCheckout response to redirect user to Paypal payment page
- Login to Paypal test using the Personal Sandbox test account. Once logged in I am taken to a 'Review your information' page. when I select 'Continue' on this page I end up back on the page I submitted as the Return URL.
- From the Return URL page I submit a GetExpressCheckoutDetails request. On the response the CheckoutStatus always has a value of PaymentActionNotInitiated.
I have tried several sandbox accounts (verified and not verified) and the results are always the same. What would be causing this.
Sample of the SetExpressCheckout request is below
<soapenv:Envelope>
<soapenv:Header>
<urn:RequesterCredentials>
<urn1:Credentials>
<urn1:Username>sandbox_username</urn1:Username>
<urn1:Password>sandbox_passwword</urn1:Password>
<urn1:Signature>sandbox_signature</urn1:Signature>
</urn1:Credentials>
</urn:RequesterCredentials>
</soapenv:Header>
<soapenv:Body>
<urn:SetExpressCheckoutReq>
<urn:SetExpressCheckoutRequest
<urn1:DetailLevel>ReturnAll</urn1:DetailLevel>
<urn1:ErrorLanguage>en_US</urn1:ErrorLanguage>
<urn1:Version>119.0</urn1:Version>
<urn1:SetExpressCheckoutRequestDetails>
<urn1:OrderTotal currencyID="EUR">13.08</urn1:OrderTotal>
<urn1:ReturnURL>https://url/paypalreturnurl.htm</urn1:ReturnURL>
<urn1:CancelURL>https://url/paypalcancelurl.htm</urn1:CancelURL>
<urn1:OrderDescription>Invoice Num 31650</urn1:OrderDescription>
<urn1:InvoiceID>31650</urn1:InvoiceID>
<urn1:PaymentAction>Sale</urn1:PaymentAction>
</urn1:SetExpressCheckoutRequestDetails>
</urn:SetExpressCheckoutRequest>
</urn:SetExpressCheckoutReq>
</soapenv:Body>
</soapenv:Envelope>
You will need to complete Doexpresscheckout to complete the payment. After payment is complete you will get
CHECKOUTSTATUS=PaymentActionCompleted