C# PayPal Express结账:登录页=账单

C# PayPal Express结账:登录页=账单,c#,paypal,express-checkout,C#,Paypal,Express Checkout,我试图让PayPal Express结账始终只使用“账单”登录页,在该登录页中可以直接输入卡号 我尝试了在谷歌上能找到的一切,最后得到了一些非常奇怪的结果。当我重定向到PayPal时,有50%的时间我会看到“账单”页面,另外50%的时间我会看到“登录到PayPal/以访客身份签出”页面(实际上只需按下后退按钮,然后再次单击“签出”即可得到不同的结果)。我真的需要一致地进入账单页面 SetExpressCheckoutRequestType pp_Request = new Set

我试图让PayPal Express结账始终只使用“账单”登录页,在该登录页中可以直接输入卡号

我尝试了在谷歌上能找到的一切,最后得到了一些非常奇怪的结果。当我重定向到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测试文本,但当我要求对登录页进行完全更改时,它似乎不太重要


还可能是什么?

首先:是的,PayPal不断进行测试以改善流量,因此他们将进行A | B测试。这两个按钮的文本听起来特别像经典的a | B测试,可能任何转换率最高的测试(这意味着商家的销售额最高)都将在未来被采用为100%解决方案。PayPal还检查cookie,以尝试向每个买家提供最佳的、最有可能转换页面的页面(例如,如果有活动的PayPal cookie,则使PayPal登录突出;没有PayPal cookie,则使直接卡片输入更加突出)。同样,这样做是为了提高总转化率。你可以努力挫败/推翻这些选择,但我不推荐这样做;通过将你的期望强加给你的客户,你很可能失去了销售

除此之外,你所看到的可能不是A | B测试或PayPal的转换优化,而是产品和使用之间的不匹配。ExpressCheckout本质上是一款以贝宝品牌/贝宝账户持有人为中心的支付产品。它完全没有客人结账,旨在与直接信用卡账单(PayPal的DirectCreditCard API或其他支付网关/处理器)一起使用。后来,Express checkout中增加了一个“guest checkout”,因此它可以作为唯一的解决方案,但要求Express checkout成为网关就像要求F150成为跑车(或跑车成为F150)。不同的产品。是的,你有时可以把手提箱放在乘客座位上,但如果你的主要目的是载货,那么你可能走错了方向:)

如果您预期的使用被托管,但直接以卡为中心的贝宝帐户持有人认为是“附加”,那么考虑贝宝的托管独资解决方案。这是PayPal的产品,旨在集中显示卡支付,但有一个“逃逸”到PayPal账户持有人支付,而不是相反。或者考虑通过Braintree(现在是贝宝)整合,它有一个好的SDK,它结合了Braintree信用卡支付和贝宝账户支付。


我还想说,你可能会发现贝宝品牌对你的生意并没有那么坏。对于大多数中小型商家来说,它提高了信任度,并能显著提升销售额。

得到了贝宝支持部门的回应:这是一个bug。他们似乎并不急于修复

更新-贝宝刚刚通知我,这是固定的

我问:

“我有一位客户正在使用Express Checkout,希望登录页面成为“输入卡详细信息”页面

这是一种B2B业务,秘书在电脑上显示PayPal cookie并不意味着PayPal结账是合适的。他们几乎总是想使用一张与任何PayPal账户都没有链接的公司信用卡

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

是否仍然可以强制express checkout始终使用登录页账单?”

他们回答说:

“LandingPage变量被新的签出流忽略了这一时间点-这已经引起了开发人员的注意,以使其得到修复

不幸的是,我们目前没有该修复的预计到达时间


一旦修复程序推出,您将收到通知。”

是的,我收回关于PayPal品牌的抱怨。只是因为这曾经奏效而恼火,然后就停止了。我有几十个不同支付网关的集成,只有当客户太小而不想承诺最低月费时,我才推荐PayPal Express。我知道我有比PayPal Express更好的解决方案,但这不是我问的问题。PayPal发布了一个API,据我所知,他们的服务不符合该API。它过去是有用的。现在没有了,如果真是这样,我会很惊讶的。我认为答案是“如果你需要控制结帐过程,不要使用PayPal Express”。在这个例子中,我用Stripe解决了这个问题;显然他们现在解决了这个问题。如果呼叫包含登录页面=计费,则它将永远不会选择新的签出流,并且将始终返回到经典的签出流,并且将继续这样做,直到他们将登录到计费页面的方式与新的签出流集成。但我自己还没有测试过。。。