My clients website is using the PayPal UK Website Payments Pro Hosted Solution.
When a customer is directed to PayPal to make their payment they are given two options,
"Pay with my PayPal account" OR "Pay with my debit or credit card".
If the customer chooses to use their paypal account they log in and make their payments and are taken to a Paypal payment confirmation page that states "Thanks for your order. You are now going back to ..." this page hovers for about 5-10 seconds and then redirects the customer back to the website where the order is confirmed and emails sent etc.
My problem is that some customers aren't waiting to be redirected, which is causing errors with order confirmations.
My question is how can I skip the PayPal payment confirmation page altogether?
I have auto return on. I have set a return URL. Payment Data Transfer is on.
showHostedThankyouPage = false
And I'm running out of ideas...
If the user chooses the other option and enters their credit card details it all works perfectly.
You're a little bit scattered it seems. What you described in your original post sounds like Payments Standard or Express Checkout. Payments Pro doesn't have any redirect to PayPal at all.
Then I see you made a comment that you're using BMCreateButton. That is part of the Button Manager API, which is Payments Standard. Not Pro. Payments Standard doesn't have the option like Express Checkout does to force the full CC form using SOLUTIONTYPE and LANDINGPAGE parameters.
If you're using the full Payments Pro you would need to use the DoDirectPayment API or PayFlow depending on which version you're setup with. Then you'd have Payments Pro Hosted, which makes use of an iframe on your page. Again, though, with both, no redirect occurs.
If you're using BMCreateButton that's not Pro. You need to figure out exactly what version of Pro you're signed up for and integrate those API's accordingly.
I got a fantastic response from PayPal's technical depart. Thanks Ignacio. I'll share my findings for anyone else with this issue. This was the response I received.
The Website Payments Pro Hosted Solution has two different ways of payment:
This is the intended behavior in PayPal Standard when a customer makes a payment with a PayPal account and Auto Return is enabled.
The fact that it's happening for the "Pay with PayPal" option included within the Pro Hosted Solution is because, as mentioned above, this option is basically our PayPal Standard payment method, so the behavior is exactly the same.
Unfortunately, there is not a way to skip this page at all. Not from your PayPal account settings, not by sending any variables.
We definitely recommend IPN as a more reliable way of getting notifications of new payments, as even if "Auto Return" was working straight away, some customers could still close the browser inmediately.
If IPN is enabled, PayPal will always send a POST to your notification URL, regardless if the customer has returned back to your site or not.
The Express Checkout flow is different from PayPal Standard. When a customer clicks on "Continue/Pay" while in PayPal, we won't attempt to take the payment, but rather take the customer back inmediately to the RETURNURL, and it would be your own integration the one that would complete the payment by sending a DoExpressCheckoutPayment API request.
But again, the "Pay with PayPal" option within the Pro Hosted Solution uses PayPal Standard and not Express Checkout.
The only alternative that I can suggest apart from using IPN, would be to disable the "Pay with PayPal" option within the Pro Hosted Solution (this can be done from our side), so that customers only have the option to pay by direct credit card and not by PayPal, and then implement Express Checkout independently of the Pro Hosted Solution for your PayPal payments.