如何使用PayPal付款预付款

时间:2016-08-17 16:00:37

标签: c# asp.net-mvc paypal paypal-adaptive-payments

我需要在我已经运行的自适应付款应用中集成PayPal Payment Preapproval。我找到了this .NET示例,它解释了很多内容,但我仍然没有全面了解。如果有人能解释,我有几个问题。

我打电话来设置预批准。然后我拨打电话设置第一笔付款,或设置付款计划,它会自动按空格向客户收取费用吗?

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

两次通话都能获得IPN吗?是否有IPN样本,所以我可以看到呼叫包括什么?

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

2 个答案:

答案 0 :(得分:1)

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

您只需将预先批准密钥与您支付的金额以及其他付款详细信息一起传递到Pay API即可,并在Pay请求成功完成后立即付款。此时无法重定向到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帐户配置文件的交易)。

希望有所帮助。

答案 1 :(得分:1)

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

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

当然,在成功调用preapproval或使用preapproval-key付款后,您将获得IPN。