c# - 如何使用 PayPal 付款预核准

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

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

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

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

两次通话都可以获得 IPN 吗?是否有 IPN 示例,以便我可以查看调用包含的内容?

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

最佳答案

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

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

因此,使用充满预批准 key 的数据库,您可以构建自己的订阅系统(我假设这就是您正在做的......??)

因此,如果您想每月、每周、每天、每分钟或其他任何方式向某人收费一次,您可以将该逻辑构建到您自己的系统中,并在必要时使用预批准 key 通过支付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 帐户配置文件的交易)。

希望对您有所帮助。

关于c# - 如何使用 PayPal 付款预核准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001358/

相关文章:

php - Woocommerce 订单状态 Hook 不适用于 PayPal 交易

paypal - 如何在不使用 paypal 帐户的情况下在 braintree 中使用 SEPA?

c# - 带有文本框的 ASP.NET 动态 ASP 表 - 在 ViewState 中保存值

c# - mysql +c# 如何将 mysqldataReader 转换为正确的日期时间

c# - 使用 Web 应用程序管理定时事件的首选方法是什么?

asp.net-mvc - HttpErrors existingResponse ="Replace"阻止了 MVC 的自定义错误处理

asp.net-mvc - 从 Asp.net core 中的日志记录中排除自定义异常类

Paypal IPN 失败

c# - 如何将 XML block 从一个文档复制到另一个文档?

asp.net-mvc - 使用 GIT for Visual Studio 2012 构建克隆项目时出现问题