使用新的 REST API 应用程序从经典(IPN 端点)搜索 Paypal 交易

Posted

技术标签:

【中文标题】使用新的 REST API 应用程序从经典(IPN 端点)搜索 Paypal 交易【英文标题】:Searching Paypal Transactions from classic (IPN endpoint) with new REST API app 【发布时间】:2016-04-08 17:37:00 【问题描述】:

我一直在使用 PayPal 的 IPN 来处理交易。我想构建一个发票搜索工具,以便能够出于各种原因搜索旧用户或当前用户的付款。我今天花了一些时间设置 PayPal php REST API SDK 来促进这一点,并做了以下事情。

我使用当前帐户在 developer.paypal.com 上创建了一个新应用。 我通过 composer 安装了最新的 (1.6.3) PayPal PHP REST SDK。 我使用我的 LIVE 客户端 ID 和密码配置了 sdk_config.ini。 我将 ini 文件的模式从沙盒设置为 LIVE。 我使用我的 LIVE 客户端 ID 和密码创建了 OAuthTokenCredential。

我通过 OAuthTokenCredential 对象生成一个 AccessToken,它需要一个 config 实例。

$config = PayPal\Core\PayPalConfigManager::getInstance()->getConfigHashmap();
$oauth_credential->getAccessToken($config);

我使用已启动的 OAuthTokenCredential 创建了一个 ApiContext。

$api_context = new PayPal\Rest\ApiContext($oauth_credential);

我使用广泛的日期跨度创建了一个搜索对象,我 100% 确定应该返回结果。

$search = new PayPal\Api\Search(
   '
      "start_invoice_date" : "2014-12-01 PST",
      "end_invoice_date" : "2015-01-01 PST",
      "page" : 1,
      "page_size" : 20,
      "total_count_required" : true
   '
);

然后我使用我的搜索对象和 API 上下文进行发票搜索

$invoices = PayPal\Api\Invoice::search($search, $api_context);

没有错误,一切运行良好。问题是我在 $invoices 对象中没有得到任何结果。就好像我刚刚创建了一个新帐户并且没有发票一样。我觉得我在某处遗漏了一个设置,对我想做的事情使用了不适当的 API 调用,或者我应该使用他们的其他 API 之一。

【问题讨论】:

【参考方案1】:

通常 PayPal 中的经典架构和 REST 架构独立工作,不能总是一起使用。例如,对于使用Classic API 运行的事务,您不能使用REST API 到search,反之亦然。

【讨论】:

那我可以使用 Paypal 的 NVP API 吗? 更具体地说,我是使用 Paypals 新的 developers.paypal 网站还是使用经典网站设置 NVP 凭据?

以上是关于使用新的 REST API 应用程序从经典(IPN 端点)搜索 Paypal 交易的主要内容,如果未能解决你的问题,请参考以下文章

在 localhost 中为 IPN 使用 Advance Rest API

如何使用 PayPal REST API 和 IPN 验证销售

将经典 PayPal api 迁移到新的客户端 REST API

PayPal REST API 支付 id = IPN txn id

Payout (REST api) 功能是不是旨在取代 Mass Pay(经典商家 api)?

PayPal Adaptive Payments REST API 还是经典?