如何使用 PayPal 付款预先批准

Posted

技术标签:

【中文标题】如何使用 PayPal 付款预先批准【英文标题】:How to use PayPal Payment Preapproval 【发布时间】:2016-12-24 09:22:14 【问题描述】:

我需要将 PayPal Payment Preapproval 集成到我已经工作的 Adaptive Payments 应用程序中。我找到了this .NET 示例,它解释了很多事情,但我仍然不了解全貌。我有几个问题,如果有人可以解释一下。

我打电话来设置预先批准。然后我打电话设置第一笔付款,或者设置付款计划,它会自动按指定的基础向客户收费?

我分别进行这两个调用(以不同的方法),或者我必须在一个方法中一个接一个地调用它们?如果它们是单独的方法,Paypal 将返回一些信息,或者我必须将批准的密钥放在 url 中,然后使用此密钥在本地存储一些信息(以便我可以检索它)?

两个电话我都能获得 IPN 吗?有没有 IPN 示例,所以我可以看看调用包括什么?

我阅读了 PayPal 网站上的集成指南,但它没有解释这些内容。

【问题讨论】:

【参考方案1】:

Preapproval API 为您提供了一个用于买方的预批准密钥,允许您的应用在未来的任何时间代表他们进行付款,而无需进一步批准。

您只需将预批准密钥连同您支付的金额和其他付款详细信息一起传递到 Pay API,付款就会在支付请求成功完成后立即进行。那时没有重定向到 PayPal 或任何东西。它只是立即处理付款,因为您有一个预批准密钥。

因此,有了一个充满预先批准密钥的数据库,您就可以构建自己的订阅系统(我假设这就是您正在做的事情......??)

因此,如果您想每月、每周、每天、每分钟或其他任何方式向某人收费,您可以将该逻辑构建到您自己的系统中,并在必要时通过支付 API。

您将获得流程中每个步骤的 IPN。

以下是创建预批准配置文件时获得的 IPN 示例:

[max_number_of_payments] => null
[starting_date] => 2016-07-19T00:00:51.000-07:00
[pin_type] => NOT_REQUIRED
[currency_code] => USD
[sender_email] => mrudul@talentslist.com
[verify_sign] => ApPqhQzUdN-1AdXqLkHRLMacdubFA00qBz08sedMIOkLAaOPPyc726Fs
[test_ipn] => 1
[date_of_month] => 0
[current_number_of_payments] => 0
[preapproval_key] => PA-3A023836LS390262L
[ending_date] => 2016-10-18T23:59:51.000-07:00
[approved] => true
[transaction_type] => Adaptive Payment PREAPPROVAL
[day_of_week] => NO_DAY_SPECIFIED
[status] => ACTIVE
[current_total_amount_of_all_payments] => 0.00
[current_period_attempts] => 0
[charset] => windows-1252
[payment_period] => 0
[notify_version] => UNVERSIONED

当付款请求发生时,您也会获得不同的 IPN。使用自适应支付时,使用 IPN 时要记住的一件重要事情是,您在 ipnNotificationUrl 中设置的 URL 是“特定于应用程序的”,并且将包含与应用程序本身相关的详细信息。接收付款的 PayPal 帐户需要配置 IPN 以获取包含更多付款特定详细信息的 IPN。

因此,如果您有一个使用 ipnNotificationUrl 的应用程序设置,并且付款将转到您自己的 PayPal 帐户,该帐户也配置了 IPN,那么您将获得 2 个用于该交易的单独 IPN。一个用于正在创建的预批准配置文件(来自 API 请求的特定应用程序),另一个用于正在进行的付款(来自 PayPal 帐户配置文件的特定交易)。

希望对您有所帮助。

【讨论】:

【参考方案2】:

Preapproval Key 对以后的付款很有用。当您调用 preapproval 时,您必须设置开始日期和结束日期。调用API成功后,您需要重定向买家同意,然后您将获得预批准密钥。将来,您可以使用 Pay API 的预批准密钥在未经买家同意的情况下向他们收费,因为他们之前已经同意了。

但请注意,密钥仅在您设置的期间有效,买家可以随时自行取消。

当然,调用preapproval成功或使用preapproval-key支付后,你会得到IPN。

【讨论】:

以上是关于如何使用 PayPal 付款预先批准的主要内容,如果未能解决你的问题,请参考以下文章

Paypal 使用嵌入式灯箱预先批准付款

使用 PayPal,如何让用户预先付款,然后“不定期地”向他们收费而无需进一步批准?

使用 rails 和 active_paypal_adaptive_payment 执行预批准付款

Paypal 预先批准付款

Paypal 使用 Laravel 预先批准的付款

Paypal预先批准的付款,不显示价格?