PayPal Express Checkout:登陆页面 = 结算
Posted
技术标签:
【中文标题】PayPal Express Checkout:登陆页面 = 结算【英文标题】:PayPal Express Checkout: Landing Page = Billing 【发布时间】:2015-03-05 13:12:27 【问题描述】:我正在尝试让 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 测试,但当我提出要求时,完全改变着陆页似乎并不过分。
还能是什么?
【问题讨论】:
【参考方案1】:首先:是的,PayPal 不断测试以改善他们的流程,因此他们将进行 A|B 测试。特别是两个按钮文本听起来像是一个经典的 A|B 测试,并且大概任何具有最高转化率(这意味着对商家来说意味着最多的销售)的测试都将被用作未来 100% 的解决方案。 PayPal 还检查 cookie 以尝试为每个买家提供最佳的、最有可能转换的页面(例如,如果有活动的 PayPal cookie 使 PayPal 登录突出;没有 PayPal cookie 会使直接卡条目更加突出)。再次这样做是为了提高总转化率。您可以努力击败/覆盖这些选择,但我不建议这样做;通过将您的期望强加于您的客户,您可能会失去销售额。
除此之外,您看到的一些可能不是 A|B 测试或 PayPal 的转换优化,而是产品和使用之间的不匹配。 ExpressCheckout 本质上是一种 PayPal 品牌/PayPal 以账户持有人为中心的支付产品。它完全没有客人结帐,旨在与直接信用卡计费(贝宝的 DirectCreditCard API 或其他一些支付网关/处理器)一起使用。后来在 Express Checkout 中添加了“guest checkout”,因此可以将其用作唯一的解决方案,但要求 Express Checkout 作为网关就像要求 F150 成为跑车(或跑车成为 F150)。不同的产品。是的,您有时可以将手提箱放在乘客座位上,但如果您的主要目的是运送货物,您可能会走错路:)。
如果您的预期用途是托管的,但以 PayPal 帐户持有人为中心的直接卡被视为“附加”,那么请考虑 PayPal 的 Hosted Sole 解决方案。这是 PayPal 的产品,旨在集中展示卡付款,但对 PayPal 账户持有人的付款有一种“逃避”的作用,而不是相反。或者考虑通过 Braintree(现在是 PayPal)进行集成,它有一个很好的 SDK,结合了 Braintree 信用卡付款和 PayPal 账户持有人付款。
我还想说明一下,您可能会发现 PayPal 品牌对您的业务并没有那么糟糕。对于大多数中小型商家而言,它可以提高信任度并显着提升销售额。
【讨论】:
是的,我收回关于 PayPal 品牌的恶作剧。只是因为这曾经起作用而感到恼火,然后停止了。我已经与不同的支付网关进行了数十种集成,并且我只在客户太小而不想承诺最低月费时才推荐 PayPal Express。我知道我有比 PayPal Express 更好的解决方案,但这不是我问的问题。 PayPal 已经发布了一个 API,据我所知,他们的服务不符合该 API。它曾经工作过。现在没有了。【参考方案2】:得到了 PayPal 支持的回复:这是一个错误。他们似乎并不急于修复。
更新 - PayPal 刚刚通知我此问题已修复。
我问:
“我有一位客户正在使用 Express Checkout,并希望登录页面是“输入卡详细信息”页面。
它们是 B2B 操作,并且在进行购买的秘书的计算机上存在 PayPal cookie 绝不表示 PayPal 结账是合适的。他们几乎总是想使用未与任何 PayPal 帐户关联的公司信用卡。
我正在设置请求中的所有相关属性,我可以在您的文档或 Google 上找到这些属性,但它们都被忽略了。
是否仍然可以强制快速结帐始终使用着陆页结算? "
他们回答:
“LandingPage 变量在这个时间点被新的结帐流程忽略 - 这已经引起开发人员的注意以修复它。
很遗憾,我们目前没有该修复的预计到达时间。
一旦修复推出,您将收到通知。”
【讨论】:
如果有的话我会很惊讶。我认为答案是“如果您需要控制结帐过程,请不要使用 PayPal Express”。在这种情况下,我改用 Stripe 解决了这个问题。 PayPal 刚刚取得联系;显然他们现在解决了这个问题。如果调用包含 LandingPage = Billing,那么它将永远不会选择新的结帐流程,并且将始终回退到经典的结帐流程,并且会继续这样做,直到他们将一种登陆计费页面的方式与新的结帐集成在一起流动。虽然还没有自己测试过......以上是关于PayPal Express Checkout:登陆页面 = 结算的主要内容,如果未能解决你的问题,请参考以下文章
PayPal Express Checkout 通行证 transactionID
如何访问 Paypal Express Checkout 的响应?
如何为 PayPal Express Checkout 配置 IPN?
paypal express checkout - 400 错误请求