c# - Paypal 快速结账 : Landing Page = Billing

标签 c# paypal express-checkout

我正在尝试让 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 测试,但在我要求不太高的情况下完全更改登录页面似乎有点过分。

还能是什么?

最佳答案

首先:是的,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)一样。不同的产品。是的,有时您可以将手提箱放在乘客座位上,但如果您的主要目的是运载 cargo ,那么您可能采用了错误的方式:)。

如果您的预期用途是托管的,但以 PayPal 账户持有人为中心的直接卡被视为“附加服务”,那么请考虑 PayPal 的托管独家解决方案。这是 PayPal 的产品,旨在集中呈现卡支付,但有一个“转义”到 PayPal 账户持有人支付,而不是相反。或者考虑通过 Braintree(现在是 PayPal)集成,Braintree 有一个很好的 SDK,可以结合 Braintree 信用卡支付和 PayPal 账户持有人支付。

我还要指出,您可能会发现 PayPal 品牌对您的业务来说并不是那么糟糕。对于大多数中小型商家而言,它可以提高信任度并显着提升销量。

关于c# - Paypal 快速结账 : Landing Page = Billing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27822890/

相关文章:

c# - WebKit FileNotFoundException 错误

javascript - 订阅后如何获取用户信息?

c# - 许多站点接受订单;一个 Paypal 账户

c# - Protobuf-net 似乎是对值类型进行包装。事实是这样吗?

c# - 在 .NET 中捕获存储过程打印输出

paypal - 如何编辑 PayPal 支付页面页眉和页脚文本

php - PayPal Sandbox Classic API Express Checkout NVP 内部服务器错误 (500)

paypal - 如果 PayPal token 在 3 小时后过期,我该如何在授权 1 天后捕获付款?

java - 在 Sandbox 上使用 Paypal Express Checkout,安全 header 无效,API 凭证中没有错误

c# - "using"关键字如何提高性能(内存或速度方面)