Laravel 4.2 and PayPal SDK


Laravel 4.2 and PayPal SDK

有人能告诉我为什么会出现以下错误吗:

exception 'Symfony'Component'Debug'Exception'FatalErrorException' with message 'Class 'PayPal'Rest'ApiContext' not found'

这是我的控制器代码:

<?php
use PayPal'Rest'ApiContext;
use PayPal'Auth'OAuthTokenCredential;
use PayPal'Api'Amount;
use PayPal'Api'Details;
use PayPal'Api'Item;
use PayPal'Api'ItemList;
use PayPal'Api'Payer;
use PayPal'Api'Payment;
use PayPal'Api'RedirectUrls;
use PayPal'Api'ExecutePayment;
use PayPal'Api'PaymentExecution;
use PayPal'Api'Transaction;
class PaypalPaymentController extends BaseController {
    private $_api_context;
    public function __construct() { 
        // setup PayPal api context
        $paypal_conf = Config::get('paypal');
        $this->_api_context = new ApiContext(new OAuthTokenCredential($paypal_conf['client_id'], $paypal_conf['secret']));
        $this->_api_context->setConfig($paypal_conf['settings']);
    }

我也不确定服务提供商需要什么。。。至少有人能填补那个空白吗?

我刚刚在L5安装上安装了composer的包,它成功了,所以我认为以下将对您有所帮助:

如果你不使用composer,请删除与贝宝相关的所有内容并使用它,这会有所帮助。。很多

composer.jsoncomposer updatecomposer dumpautoloadphp artisan cache:clear中删除贝宝软件包。

再次添加包,我用"paypal/rest-api-sdk-php": "1.3.*"完成了。composer update

使用php artisan tinker测试它,如下所示:new PayPal'Rest'ApiContext()应该返回一些描述对象的蓝线。

我坚信这是一个作曲家的问题,我在另一个支付包上也遇到了同样的问题,但没有任何东西是按名称命名的,他们使用classmap加载,paypal使用psr-0。这就是问题所在:composer所需的非名称空间、classmap加载包使得php throw Class找不到

如果您正在使用composer下载PayPal PHP SDK,则需要添加include语句来添加所有类,如下所示:

// 1. Autoload the SDK Package. This will include all the files and classes to your autoloader
require '<location to vendor directory>/vendor/autoload.php';

如果你使用直接下载,你需要添加include,路径如下:

// 1. Autoload the SDK Package. This will include all the files and classes to your autoloader
require '<location to PayPal-PHP-SDK directory>/PayPal-PHP-SDK/autoload.php';