Paypal快捷支付和网站支付标准之间的API差异

9
我正在努力了解Paypal的Express Checkout和Website Payment Standard之间的API差异。我知道用户界面上的区别(Express Checkout强制您拥有Paypal帐户,而Website Payment Standard还处理信用卡),但我不知道如何以编程方式与它们进行交互,特别是从Rails应用程序中。Active Merchant表示支持Express Checkout,但没有提到Website Payment Standard。对于重复付款,我找到了这个 gem,但它只提到了Express Checkout。它是否与Website Payment Standard一起使用(如果有)?
我意识到Paypal有多个API,虽然Active Merchant通过Paypal的SOAP端点通信,但您也可以通过基于URL的API通信。我只是感到困惑,因为有太多的文档,很难理解什么适用于什么。
编辑-澄清一下,我所谓的接受信用卡并不是强制用户拥有Paypal帐户-让Paypal仅作为信用卡网关(例如AuthNet)。我知道信用卡可以绑定到您的Paypal帐户,这不是我所说的。
谢谢!
2个回答

9

与其编辑我先前编辑过的答案,我要再试一次。

快速结账是为了将其作为“Pay with PayPal”选项与您现有的支付解决方案并排而设立的。它具有更完整的API,并且只需要您的客户离开您的网站输入付款信息。这里有一个更详细的介绍 here

为了澄清,是的,PayPal的快速结账和网站支付标准都允许您接受来自“访客账户”的付款(没有PayPal帐户的客户)。

我同意文档有时会令人困惑。既然您提到了Rails,这里是如何在Active Merchant中启用“访客账户”的快速结账。

我相信快速结账仅适用于商业账户(非个人)。如果您拥有商业账户,则会在您的PayPal配置文件中找到设置 - Profile>我的销售工具>在线销售>网站首选项 向下滚动至PayPal账户可选并选择打开单选按钮。

编辑: 显然,此选项可以在 Profile>网站支付首选项>PayPal账户可选下找到。

然后使用Active Merchant,使用allow_guest_checkout调用PayPal(此代码基于railscast on express checkout一集)。

response = EXPRESS_GATEWAY.setup_purchase(current_cart.build_order.price_in_cents,
  :ip                => request.remote_ip,
  :return_url        => new_order_url,
  :cancel_return_url => products_url,
  :allow_guest_checkout => true

)

希望这可以帮到你。

1
现在,我有双重实现 - 一个使用ActiveMerchant的Express Checkout,另一个使用标准URL参数的WPS。我正在使用的商家沙盒帐户已启用“Paypal Account Optional”,但是当我在Express Checkout中去结账时,如果我没有帐户,它只给我创建新帐户(但仍需提供信用卡)的选项。另一方面,WPS实际上允许我在没有Paypal帐户的情况下结账。我正在使用ActiveMerchant传递:allow_guest_checkout => true - jnevelson
听起来你的设置应该可以工作。你的PayPal沙盒主页是否列出了“账户类型:商业|状态已验证”? - Mike Vormwald
找到问题所在了。我们使用的是一个非常旧的Active Merchant版本,它不支持:allow_guest_checkout。我使用相关代码进行了补丁修复,现在一切都正常了,谢谢! - jnevelson

3

网站支付标准(WPS)和快速结帐都接受信用卡。快速结帐具有更多功能(例如返回POST),现在两者都允许直接使用信用卡,因此差异较小。

您的PayPal配置文件中可能有一个设置,通常位于配置文件=>我的销售偏好=>在线销售部分,该设置具有返回和自定义着陆页面选项。

对于单一的网关功能,您需要拥有网站支付专业版和/或其他形式的解决方案,以便您可以进行直接POST,这可能包括其他障碍,例如PCI合规性等。

至于activemerchant,请查看关于paypal的Railscast系列(特别是express checkout

这些视频有点旧,但我去年根据这些视频设置了一个基于activemerchant和paypal express的付款解决方案。应该适用于您


另外,看起来快速结帐不接受用于定期付款的信用卡。请访问https://dev59.com/WV_Va4cB1Zd3GeqPVKTd祝您好运! - Mike Vormwald
1
如果它接受信用卡,那么它和网站支付标准有什么区别?我的理解是,如果您的网站已经有了收取信用卡费用的机制,并且您只想添加使用Paypal账户进行结账的功能,则Express Checkout被视为一种替代方案。 - jnevelson
1
网站支付标准不是API,而是带有隐藏输入的<form>。快速结账完全基于API。此外,使用WPS时,付款在买家在PayPal网站上的同时完成。而使用快速结账,则是在调用“DoExpressCheckoutPayment”API之后完成。 - Robert
1
关于Express Checkout不能直接接受信用卡付款的问题;实际上是可以的。您需要在SetExpressCheckout API调用中传递SOLUTIONTYPE=Sole参数(可选LANDINGPAGE=Billing),并且还需要在PayPal账户的“配置文件”中启用“PayPal账户可选”选项。 - Robert
1
实际上,强制用户着陆在实际的着陆页面是使用网站付款标准无法做到的,但使用快速结帐可以实现。 SOLUTIONTYPE=Sole&LANDINGPAGE=Billing将始终最初显示信用卡表单。对于网站付款标准,这取决于是否有先前的paypal.com cookies。如果PayPal检测到以前的PayPal登录cookie,它将显示登录表单。 - Robert
1
我认为可以进一步澄清答案,包括这个讨论。单独看,它似乎在说网站支付标准不能与信用卡一起使用,这是误导的。WPS和快速结帐都会将您发送到Paypal页面,并且两者都允许您使用信用卡完成付款。 - Damon Aw

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