I have designed a store using PayPal Express Checkout. They have recently decided that they want separate shipping rates for local and international orders. I am currently pulling all shipping information from PayPal. Is it possible to send the total to PayPal AFTER receiving the buyer's shipping information?
3 Answers
What you want is the PayPal Instant Update / Callback API.
This is a callback from PayPal to your website to prepopulate shipping options on the PayPal website while the buyer is doing the checkout on PayPal.
It allows you to specify the specific shipping cost for the transaction after the SetExpressCheckout API has already been called.
How the Express Checkout flow would work with Instant Update / Callback implemented:
See "Setting up the Callback" on https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECInstantUpdateAPI for detailed instructions.
This page also includes an example API call and an example response for the callback; the response your callback file should return.
Let me know if anything is not clear and I'll try to hunt for some example files.
Note: In Live mode, the callback URL on your site must be SSL-secured (HTTPS). In Sandbox you can use both HTTP and HTTPS.
You can send, in the DoExpressCheckoutPayment request, a final payment amount of up to 115% of the original amount of the payment you specified in the SetExpressCheckout request.
I don't have access to paypal at the moment, but you can setup shipping in the merchant services section of paypal (I get confused as to where it is). If it is not there you can check under My Profile, My selling tools and under shipping in there.
There you should be able to setup shipping through paypal.
If you don't want to do it through paypal, you need to bring the customer back to your webpage where they can confirm the shipping and do the paying there. Sorry for the non answer, hope this leads you the right direction.