如何包含或引导 paypal-core-sdk php

Posted

技术标签:

【中文标题】如何包含或引导 paypal-core-sdk php【英文标题】:How to include or bootstrap the paypal-core-sdk php 【发布时间】:2014-02-25 00:24:02 【问题描述】:

我已经从 GitHub 手动下载了 paypal-core-sdk for php,我的服务器没有“composer”,我只是手动将文件复制到文档根目录之外的包含目录。问题是当我去调用一些服务器时,服务器会出错并且不知道我在说什么......即

Fatal error: Class 'PPApiContext' not found in /home/rctoronto/public_html/start.php on line 143

如果我在提供 PPApiContext 的文件中包含一次,它会移动到另一个错误,当我包含它抱怨的所有错误时,最终会继续进行。但随后 sdk 存在内部依赖问题。

我如何正式声明 sdk 库以便我的应用程序可以使用它 - 我已经搜索了网络并且没有设法找到这个问题的好答案。我尝试使用我的 php.ini 手动更改我的 include_path,但它仍然无法使用 sdk 的类。我在共享服务器上无权访问 /usr/lib/php 或 /usr/local/lib/php。

这是 paypal 的“getAuthorize”网址(我已经在文件上手动使用 include_once...

$apicontext = new PPApiContext(array('mode' => 'live'));
$clientId = PP_CLIENTID;
$clientSecret = PP_SECRET;
$scope = array('openid', 'email'); 
$redirectUri = 'https://maskedurl.ca/login?ltype=pp&loginSubmit=true';
$pp_authUrl = PPOpenIdSession::getAuthorizationUrl($redirectUri, $scope , $clientId,       $apicontext); 

但是我们如何正确地声明整个 sdk 库呢?

【问题讨论】:

github.com/paypal/sdk-core-php 是我正在尝试使用的库.. 我只是通过反复试验,艰难地做到了。我很惊讶没有一个整体的“包含”文件。 我实际上最终放弃了 PHP SDK 并使用 cURL 示例来实现解决方案... 嗨瑞恩,你克服了这个问题吗?我在使用 PHP SDK 时遇到了同样的问题。 【参考方案1】:

发件人:http://paypal.github.io/sdk/

如果您不想使用 composer,您可以获取 SDK zip,将文件解压缩到您的应用程序文件夹并需要“vendor/autoload.php”文件。该文件注册了一个可以自动加载 PayPal SDK 文件的自定义自动加载器。

Download SDK zip

【讨论】:

谢谢 :) 好答案! (我没有足够的声望点来投票)我相信其他有类似问题的人也会发现它很有用。【参考方案2】:

这就是我解决它的方法。更新 composer.json 如下:


    "name": "PayPal Test",
    "require": 
        "paypal/sdk-core-php": "dev-stable"
    ,
    "autoload": 
        "psr-0": "PayPal\\": "vendor/paypal/sdk-core-php/lib/"
        

【讨论】:

我没有尝试您的解决方案,因为我暂时放弃了 SDK,转而只在 PHP 中进行 CURL 调用。当我可以再次为此分配一些时间并为您评分 +1 时,我会尝试一下;)【参考方案3】:

这样就可以了:

include('paypal-sdk-core/lib/common/PPApiContext.php');
include('paypal-sdk-core/lib/PPConstants.php');
include('paypal-sdk-core/lib/PPConfigManager.php');
include('paypal-sdk-core/lib/auth/openid/PPOpenIdSession.php');

如果您需要完整的堆栈来使https://devtools-paypal.com/guide/openid/php?interactive=ON&env=sandbox 上的示例正常工作,请使用:

include('paypal-sdk-core/lib/common/PPApiContext.php');
include('paypal-sdk-core/lib/PPHttpConfig.php');
include('paypal-sdk-core/lib/common/PPUserAgent.php');
include('paypal-sdk-core/lib/PPHttpConnection.php');
include('paypal-sdk-core/lib/PPLoggingLevel.php');
include('paypal-sdk-core/lib/exceptions/PPConnectionException.php');
include('paypal-sdk-core/lib/common/PPModel.php');
include('paypal-sdk-core/lib/auth/IPPThirdPartyAuthorization.php');
include('paypal-sdk-core/lib/handlers/IPPHandler.php');
include('paypal-sdk-core/lib/PPConstants.php');
include('paypal-sdk-core/lib/PPConfigManager.php');
include('paypal-sdk-core/lib/auth/openid/PPOpenIdSession.php');
include('paypal-sdk-core/lib/auth/PPTokenAuthorization.php');
include('paypal-sdk-core/lib/auth/openid/PPOpenIdTokeninfo.php');
include('paypal-sdk-core/lib/transport/PPRestCall.php');
include('paypal-sdk-core/lib/PPLoggingManager.php');
include('paypal-sdk-core/lib/handlers/PPOpenIdHandler.php');

【讨论】:

以上是关于如何包含或引导 paypal-core-sdk php的主要内容,如果未能解决你的问题,请参考以下文章

带有目标的引导响应列

引导中心标题

如何在 django 模板的引导程序中创建可折叠卡片?

如何更改引导表中页面大小的默认值?

如何更改默认引导流体网格 12 列装订线宽度

如果它具有表单元素,如何防止引导下拉菜单切换回来