Laravel 4.2和PayPal SDK

时间:2015-03-31 22:30:07

标签: php laravel laravel-4 paypal paypal-rest-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']);

    }

我不确定服务提供商需要什么,或者......有人至少可以填补这一空白吗?

2 个答案:

答案 0 :(得分:2)

我刚刚在L5安装中安装了作曲家的软件包并且它有效,所以我认为这对你有帮助:

如果你不使用作曲家,删除与paypal相关的所有内容并使用它,它会帮助很多。

composer.jsoncomposer updatecomposer dumpautoloadphp artisan cache:clear移除paypal包。

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

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

我严重认为这是一个作曲家问题,我在另一个支付包中遇到了同样的问题,但没有任何命名空间,他们使用classmap加载,paypal使用psr-0。这是一个问题:Not namespaced, classmap loaded package required from composer makes php throw Class not found

答案 1 :(得分:0)

如果您使用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';

如果您使用direct download,则需要使用此路径添加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';