Possible duplicate of this question, but it was asked 6 years ago. So, I want to know is there a way to implement a true click upsell with paypal. I mean we have to redirect users every time and make them login and sign the agreement. Is there any way that users only need to login once and when they return to our site (e.g. on the upsell page of the funnel) then they just click buy button and we can charge them without redirecting to paypal's site.
You have a couple of options for this.
1) Express Checkout Billing Agreements + Reference Transactions. This documentation outlines those procedures: https://developer.paypal.com/docs/classic/express-checkout/ec_set_up_reference_transactions/
2) PayPal Identity APIs - Login with PayPal + Seamless Checkout. This documentation covers those procedures: https://developer.paypal.com/docs/integration/direct/identity/
I would recommend you take a look at our PayPal PHP SDK class library as it will make the API calls required to get this done very quick and easy.