django-oscar/django-oscar-paypal — pull request #46 by itbabu (2014-12-15 21:26:33+00:00)
Title: Express Checkout -  Buyer Pays on PayPal

PayPal gives the possibility to skip the confirm-order page on your website.

My company had a request about this so I had a quick look but then the client was happy with the current implementation.

I'll try to handle this when I have a bit of free time.

In the meantime, if anyone needs this Express Checkout feature this is the place to start.

[documentation here](https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECCustomizing)

> Buyer Pays on PayPal
> With Express Checkout, you can shorten your checkout flow to let buyers complete their purchases on PayPal. Then, you can skip your order confirmation page.

>Generally, buyers select payment methods as the last step before they complete their purchases. If you collect no additional information after buyers return from PayPal, you can skip the confirm-order page on your website. If you collect additional information that does not affect the payment, PayPal recommends that you collect it after buyers complete their purchases.

>The useraction URL parameter in your redirect to PayPal determines whether buyers complete their purchases on PayPal or on your website. If you set useraction to commit, PayPal sets the button text to Pay Now on the PayPal Review your information page. This text lets buyers know that they complete their purchases if they click the button.

>After PayPal redirects buyers to your site, call GetExpressCheckoutDetails and DoExpressCheckoutPayment to have PayPal complete the payment successfully. Call DoExpressCheckoutPayment without waiting for buyer interaction. Use information in the GetExpressCheckoutDetails response to fill out your order confirmation page.