I've integrated the PayPal Express into my nopCommerce code and am now in the process of doing some testing.
On the "cart" page I eliminated the code that places the PayPalExpress button under the Checkout button. This forces every user to use the Checkout button and move through the process to set shipping and tax.
When the user arrives at the "/checkout/paymentmethod page" they do not see an option to select payment method, only the PayPalExpress checkout button. To make this happen I reworked the code on the paymentmethod page to eliminate the select payment method options and added code obtained from the cart page to show the PaypalExpress button.
All seems to work as the form submission produces the error of:
Error: System.ApplicationException: PayPal API Account Name is not set at Nop.Plugin.Payments.PayPalExpress.Controllers.PaymentPayPalExpressController.SubmitButton()
Now I need to get an account name set up to see how the final transaction is handled at PayPal, if an order is entered into the nopCommerce database, if the return url works properly, etc..
I understand why you have implemented in this way but it does defeat the point of PayPal Express
. Your conversion rates will be much higher if you don't make PayPal account holders re-type their address and other details that are already held in their PayPal account into your website.
PayPal will send you the address details you need. Why make them do this manually? Especially if they are on a mobile device and typing is difficult.