PayPal快速结账:着陆页面=账单

3
我正在尝试使PayPal Express Checkout始终仅使用“账单”着陆页面,以便可以直接输入信用卡号码。
我已经尝试了Google上能找到的所有方法,但结果非常奇怪。当我重定向到PayPal时,50%的情况下我会看到“账单”页面,而另外50%的情况下我会看到“登录PayPal / 以访客身份结账”页面(只需按返回按钮然后再次点击“结账”即可得到不同的结果)。我真的需要始终进入“账单”页面。
        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";            

如您所见,我已设置版本、解决方案类型、支付操作、着陆页面和资金来源,但仍然无法可靠地工作。它的随机性感觉像是他们在进行一些A/B测试。有时,在错误的页面上,按钮会显示“以访客身份结账”,有时则显示“尝试以PayPal访客身份”。虽然我不介意对文本进行A/B测试,但当我要求不这样做时,完全改变着陆页似乎有点过分。还可能是什么原因呢?
2个回答

2
首先,是的,PayPal不断测试以改进其流程,所以他们将进行A | B测试。特别是两个按钮文本听起来像是经典的A | B测试,预计无论哪个测试具有最高的转化率(这意味着对于商家来说销售额最高),将在未来采用作为100%的解决方案。 PayPal还检查cookie,以尝试为每个买家提供最优化的、最有可能转化的页面(例如,如果有活动的PayPal cookie,则使PayPal登录突出显示;没有PayPal cookie则使直接输入信用卡更加突出)。同样,这样做是为了提高总体转换率。您可以努力打败/覆盖这些选择,但我不建议这样做;通过将您的期望强加给您的客户,您可能会失去销售。
除此之外,您看到的一些内容可能不是A | B测试或PayPal的转化优化,而是产品和使用之间的不匹配。ExpressCheckout本质上是一个PayPal品牌/PayPal账户持有人中心的支付产品。它最初完全没有访客结帐,旨在与直接信用卡计费(PayPal的DirectCreditCard API或其他付款网关/处理器)一起使用。后来,"访客结帐"被添加到Express Checkout中,因此它可以作为唯一的解决方案使用,但要求Express Checkout成为网关就像要求F150成为跑车(或跑车成为F150)一样。不同的产品。是的,您有时可以将手提箱放在乘客座位上,但如果您的主要目的是运输货物,那么您可能正在错误的方式进行:)。
如果您预期的使用方式是托管但直接基于卡片,考虑PayPal的托管唯一解决方案。这是PayPal的产品,旨在集中呈现卡付款,但具有"逃生"到PayPal账户持有人付款而不是相反的功能。或者考虑通过Braintree(现在是PayPal)进行集成,他们有一个很好的SDK,可以结合Braintree信用卡付款和PayPal账户持有人付款。
我还想说的是,您可能会发现PayPal品牌对于您的业务并不那么糟糕。对于大多数中小型商家来说,它提高了信任度,并可以带来显着的销售增长。

是的,我收回了对PayPal品牌的讽刺。只是因为这曾经有效,然后停止了,所以感到烦恼。我与不同支付网关有数十个集成,并且只有在客户太小而不想承担最低月费用时才推荐PayPal Express。我知道我有比PayPal Express更好的解决方案,但这不是我提出的问题。PayPal已发布API,据我所知,他们的服务不符合该API。它曾经有效,现在不再有效。 - Ben Curthoys

1

收到PayPal支持团队的回复:这是一个漏洞。他们似乎不急于修复它。

更新 - PayPal刚刚通知我已经修复了这个问题。

我问:

“我有一个客户正在使用快速结账,并希望着陆页面是“输入卡细节”页面。

他们是一家B2B企业,秘书电脑上存在PayPal cookie并不表示PayPal结账是合适的。他们几乎总是想使用与任何PayPal帐户都没有关联的公司信用卡。

我在请求中设置了所有相关属性,这些属性可以在您的文档或Google上找到,但它们被忽略了。

是否仍然可以强制快速结账始终使用登陆页面计费? "

他们回答道:

“目前新的结账流程忽略了LandingPage变量-已经向开发人员提出了此问题以进行修复。

不幸的是,我们目前还没有修复时间表。

修复后会通知您。”


2
如果以后有这种情况,我会感到惊讶。我的建议是:“如果你需要控制结算流程,不要使用PayPal Express”。在这种情况下,我使用Stripe解决了问题。 - Ben Curthoys
1
PayPal刚刚联系我们,显然他们现在已经解决了这个问题。如果调用包括LandingPage = Billing,则永远不会选择新的结帐流程,并且将始终回退到经典的结帐流程,并且在他们集成了一种使用新的结帐流程着陆到结算页面的方式之前,将继续使用经典的结帐流程。虽然我还没有自己测试过... - Ben Curthoys

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接