3
votes

I'm trying to get the PayPal Express Checkout to consistently only use the "Billing" landing page where card numbers can be entered directly.

I have tried everything I can find on Google, and have ended up with some very odd results. When I redirect to PayPal, I get the "Billing" page 50% of the time, and the "Log in to PayPal / Check Out as Guest" page the other 50% (literally just pressing the back button and then clicking "checkout" again gives different results). I really need to get to the Billing page consistently.

        SetExpressCheckoutRequestType pp_Request = new SetExpressCheckoutRequestType();
        pp_Request.Version = "117.0";

        pp_Request.SetExpressCheckoutRequestDetails = new SetExpressCheckoutRequestDetailsType();
        pp_Request.SetExpressCheckoutRequestDetails.SolutionType = SolutionTypeType.SOLE;
        pp_Request.SetExpressCheckoutRequestDetails.PaymentAction = PaymentActionCodeType.SALE;
        pp_Request.SetExpressCheckoutRequestDetails.LandingPage = LandingPageType.BILLING;
        pp_Request.SetExpressCheckoutRequestDetails.FundingSourceDetails = new FundingSourceDetailsType();
        pp_Request.SetExpressCheckoutRequestDetails.FundingSourceDetails.UserSelectedFundingSource = UserSelectedFundingSourceType.CREDITCARD;            
        pp_Request.SetExpressCheckoutRequestDetails.ReturnURL = serverName + returnUrl;
        pp_Request.SetExpressCheckoutRequestDetails.CancelURL = serverName + cancelUrl;
        pp_Request.SetExpressCheckoutRequestDetails.OrderTotal = new BasicAmountType();
        pp_Request.SetExpressCheckoutRequestDetails.OrderTotal.currencyID = CurrencyCodeType.GBP;
        pp_Request.SetExpressCheckoutRequestDetails.OrderTotal.value = String.Format("{0:F2}", amount);
        pp_Request.SetExpressCheckoutRequestDetails.NoShipping = "1";            

As you can see, I'm setting the version AND the Solution Type AND the Payment Action AND the Landing Page AND the Funding Source, and it still doesn't work reliably.

The randomness of it feels like they're doing some A/B testing. Sometimes, on the wrong page, the button says "Check Out as Guest", and sometimes it says "Try PayPal as Guest". Whilst I don't mind A/B testing for text, a complete change of landing page when I've asked it not too seems a bit much.

What else could it be?

2

2 Answers

2
votes

First: yes, PayPal continuously tests to improve their flows, so they will be doing A|B testing. The two button texts in particular sound like a classic A|B test, and presumably whatever tests out with the highest conversion rate (which means the most sales for merchants) will be adopted as the 100% solution in the future. PayPal also checks cookies to try to offer the optimal, most-likely-to-convert page to each buyer (e.g. if there is an active PayPal cookie make the PayPal login prominent; no PayPal cookie make the direct card entry more prominent). Again this is done to raise total conversion. You can work to defeat/override these choices but I would not recommend it; by imposing your expectations on your customers you are probably loosing sales.

That aside, some of what you are seeing may not be A|B testing or PayPal's conversion optimization but rather a mismatch between product and usage. ExpressCheckout is inherently a PayPal-branded/PayPal accountholder-centric payment product. It was built with no guest checkout at all, intended to be used alongside direct credit card billing (PayPal's DirectCreditCard API or some other payment gateway/processor). Later on a "guest checkout" was added to Express Checkout so it can be used as a sole solution, but asking Express Checkout to be a gateway is like asking an F150 to be a sportscar (or a sportscar to be an F150). Different product. Yes you can sometimes fit the suitcase in the passenger seat, but if your primary purpose is cargo carrying you are probably going at it the wrong way :).

If your expected usage is hosted but direct card centric with PayPal account holders considered an "add on", then consider PayPal's Hosted Sole Solution. That is PayPal's product that is intended to present card payments centrally but has an "escape" to PayPal accountholder payments rather than the reverse. Or consider integrating through Braintree (which is now PayPal), who has a good SDK that combines Braintree credit card payments plus PayPal accountholder payments.

I'd also throw out there that you might find the PayPal brand isn't so bad for your business. For most small-to-medium merchants it raises trust and can deliver significant sales lift.

1
votes

Got a response from PayPal Support: it's a bug. That they don't seem to be in a hurry to fix.

UPDATE - PayPal just notified me that this is fixed.

I asked:

"I have a customer who is using Express Checkout and wants the landing page to be the "Enter Card Details" page.

They are a B2B operation, and the presence of a PayPal cookie on the computer of the secretary doing the purchase in no way indicates that a PayPal checkout is appropriate. They're almost always going to want to use a company credit card which is not linked to any PayPal account.

I'm setting all the relevant properties in the request that I can find in your documentation or on google, but they're being ignored.

Is it still possible to force the express checkout to consistently use the Landing Page Billing? "

and they replied:

"The LandingPage variable is being ignored that this point in time by the new checkout flow - this has already been brought to the attention of the developers to get it fixed.

Unfortunately we do not have an ETA for that fix at the moment.

You will be notified once the fix has been rolled out."