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


Searching Paypal Transactions from classic (IPN endpoint) with new REST API app

我一直在使用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 = 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之一。

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