【问题标题】:Laravel 4.2 and PayPal SDKLaravel 4.2 和 PayPal SDK
【发布时间】:2015-06-05 10:41:08
【问题描述】:

谁能告诉我为什么会出现以下错误:

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']);

    }

我也不确定服务提供者需要是什么……至少有人可以填补这个空白吗?

【问题讨论】:

    标签: php laravel laravel-4 paypal paypal-rest-sdk


    【解决方案1】:

    我刚刚从 Composer 安装了 L5 安装包,它工作正常,所以我认为以下内容会对您有所帮助:

    如果您不使用 composer,请删除与 paypal 相关的所有内容并使用它,它会有所帮助.. 很多。

    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。这是问题:Not namespaced, classmap loaded package required from composer makes php throw Class not found

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 嘿 Jay,谢谢...但是你确定我需要 Laravel 的 require 语句吗?
      • 所以,如果你使用 composer 下载 laravel,当你添加 paypal-php-sdk 时,它会自动用这些类更新 autoload.php。但是,如果没有,您可能需要明确设置。
      • 你能打印你的项目布局吗?这将有助于解决这个问题。如果在 linux 或 mac 机器上,你可以通过tree -L 4
      • 我真的要放弃了...几个月来我一直在努力让这个包工作。
      • 我认为导致此错误的原因非常小。我不精通 Laravel,但是,paypal sdk 支持 laravel,并且经常与 laravel 一起使用。
      猜你喜欢
      • 2011-06-03
      • 2016-07-11
      • 1970-01-01
      • 2017-04-09
      • 2012-01-07
      • 2012-10-20
      • 2014-03-07
      • 2013-12-15
      • 2011-12-07
      相关资源
      最近更新 更多