集成单个 PayPal 订阅的最佳实践?

Best practice for integrating a single PayPal subscription?

我是 PayPal 的新手,对与 PayPal 集成的所有可能方法感到不知所措。 首先,我想实施一个每月定期付款的单一订阅。当用户returns完成付款后访问网站时,he/she将立即升级为"premium"会员(仅限数字产品 - 不涉及运费).

我研究的第一个替代方案是 Express Checkout API,它看起来不错,但有没有更简单的方法来实现它?

例如,我可以创建一个标准按钮(JS 按钮或基于表单的按钮),但仍然能够在用户 returns 时使用 REST API 验证付款详细信息吗? IPN 还是其他?

欢迎提供有关最佳做法的任何提示。

是的,现在解决这个问题的方法太多了。

您可能可以通过按钮(又名标准)、快速结帐(又名专业)样式 API 或 RESTful API 来满足您的要求,但有一些要知道的陷阱:

首先,PayPal 有几种产品可以进行定期付款;这些产品具有功能差异,并且与不同的集成方式相关联。因此(例如)PayPal 的产品 "subscriptions"(绑定到网站标准 aka 按钮)与 "recurring payments"(绑定到 Express Checkout)具有不同的(并且通常不太灵活)功能,后者又不同于 "billing agreements"(与 REST API 相关联,尽管术语 "billing agreements" 也用于快速结帐定期付款产品中)。哦,还有另一个与 APIs 的自适应支付套件相关的类似产品。

迷茫了吗?对不起。但重要的是在进行任何集成之前先确定您要使用的特定产品是否满足您的要求,否则您可能会在以后重新进行该集成工作(如果您已经开展业务,则可能不得不迁移客户) ) 以便稍后访问另一个产品的特定功能。例如,订阅产品对卖家在设置订阅后修改订阅的能力非常有限。如果没问题,那就太好了,使用它——集成起来很简单。如果我可以简化一点:标准订阅产品是最古老且最有限的; Pro定期付款更加灵活和成熟; REST 计费协议产品是最新的,非常灵活,但尚未广泛使用;它可能缺少您今天 需要的功能,但最有可能在未来不断改进。我个人不会推荐 Adaptive 产品,尽管它也有它的好处。

现在,关于您的集成问题:幸运的是,所有这些 PayPal 产品都可以使用 IPN。不幸的是,IPN 不是即时的。他们通常很快到达(1-2 秒),但可能会出现延迟 并且无法处理客户的情况非常尴尬。我只会在运送实物商品时使用 IPN,而不是在立即访问数字商品时或在客户等待您的页面的其他情况下使用 IPN。幸运的是,其他每种方法都有一种无需等待 IPN 即可立即确定 PayPal 操作是否成功的方法:

网站标准付款将包含 GET 或 POST 变量,当它 post 将用户带回您的网站时会告诉您结果。如果您使用支付数据传输功能,这些变量将包含签名信息,这样您就可以 post 将它们 返回 到 PayPal & PayPal 将验证它们的有效性(以便 - be thief 无法通过设计一个看起来像 PayPal 成功重定向的 post 来欺骗你。

这两个基于 API 的方法甚至更简单:API 本身 return 您在 API 响应中需要的所有信息。因此,在您的代码中的任何位置调用创建 subscription/agreement,如果您返回成功,那么就努力让您的用户溢价。

用户成功付款然后获得 "lost" 的奇怪情况,例如重定向 failing/browser 在他们 return 到您的站点之前关闭,或者您的站点在尝试打开用户时阻塞。出于这个原因,许多人建议使用 IPN,PayPal 将尝试重新交付 IPN,直到您将其验证回 PayPal。不错的主意,取决于。

当然,您可以调用搜索和获取详细信息类型 APIs 来获取有关您在 PayPal 的交易和协议的信息——尽管同样,您需要与正确的 API 集成与您集成的产品相匹配(例如,如果您向 REST 界面询问计费协议,则不会显示基于标准的订阅)。

希望对您有所帮助。