【问题标题】:Class not found in Laravel 7在 Laravel 7 中找不到类
【发布时间】:2021-01-04 06:11:56
【问题描述】:

我已经为 Laravel 7 安装了一个包,这个包是 http://paypal.github.io/PayPal-PHP-SDK/ 用于管理 Paypal 付款。

我创造了一切,控制器,网络路由,一切。 但是在我去测试页面的那一刻,我找不到类。

目标类 [App\Http\Controllers\PaypalController] 不存在。

PaypalController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use PayPal\Rest\ApiContext;
use PayPal\Auth\OAuthTokenCredential;

// use to process billing agreements
use PayPal\Api\Agreement;
use PayPal\Api\Payer;
use PayPal\Api\Plan;
use PayPal\Api\ShippingAddress;

class PaypalController extends Controller
{
    private $apiContext;
    private $mode;
    private $client_id;
    private $secret;
    private $plan_id;
    
    // Create a new instance with our paypal credentials
    public function __construct()
    {
        // Detect if we are running in live mode or sandbox
        if(config('paypal.settings.mode') == 'live'){
            $this->client_id = config('paypal.live_client_id');
            $this->secret = config('paypal.live_secret');
            $this->plan_id = env('PAYPAL_LIVE_PLAN_ID', '');
        } else {
            $this->client_id = config('paypal.sandbox_client_id');
            $this->secret = config('paypal.sandbox_secret');
            $this->plan_id = env('PAYPAL_SANDBOX_PLAN_ID', '');
        }
        
        // Set the Paypal API Context/Credentials
        $this->apiContext = new ApiContext(new OAuthTokenCredential($this->client_id, $this->secret));
        $this->apiContext->setConfig(config('paypal.settings'));
    }

    public function paypalRedirect(){
        // Create new agreement
        $agreement = new Agreement();
        $agreement->setName('App Name Monthly Subscription Agreement')
          ->setDescription('Basic Subscription')
          ->setStartDate(\Carbon\Carbon::now()->addMinutes(5)->toIso8601String());

        // Set plan id
        $plan = new Plan();
        $plan->setId($this->plan_id);
        $agreement->setPlan($plan);

        // Add payer type
        $payer = new Payer();
        $payer->setPaymentMethod('paypal');
        $agreement->setPayer($payer);

        try {
          // Create agreement
          $agreement = $agreement->create($this->apiContext);

          // Extract approval URL to redirect user
          $approvalUrl = $agreement->getApprovalLink();

          return redirect($approvalUrl);
        } catch (PayPal\Exception\PayPalConnectionException $ex) {
          echo $ex->getCode();
          echo $ex->getData();
          die($ex);
        } catch (Exception $ex) {
          die($ex);
        }

    }

    public function paypalReturn(Request $request){

        $token = $request->token;
        $agreement = new \PayPal\Api\Agreement();

        try {
            // Execute agreement
            $result = $agreement->execute($token, $this->apiContext);
            $user = Auth::user();
            $user->role = 'subscriber';
            $user->paypal = 1;
            if(isset($result->id)){
                $user->paypal_agreement_id = $result->id;
            }
            $user->save();

            echo 'New Subscriber Created and Billed';

        } catch (\PayPal\Exception\PayPalConnectionException $ex) {
            echo 'You have either cancelled the request or your session has expired';
        }
    }
}

路线

Route::get('/subscribe/paypal', 'PaypalController@paypalRedirect');
Route::get('/subscribe/paypal/return', 'PaypalController@paypalReturn');

我无法理解问题所在!谢谢大家

【问题讨论】:

  • 尝试重新生成所有类composer dump-autoload,如果仍然出现同样的错误,那么您的代码有问题
  • 现在:访问api.sandbox.paypal.com/v1/payments/billing-agreements时得到Http响应码400。
  • 这是另一个错误,您提到的错误已解决

标签: laravel paypal


【解决方案1】:

只要运行:

composer dump-autoload

要重新生成所有类,请参阅:https://getcomposer.org/doc/03-cli.md

【讨论】:

  • 类不会重新生成
【解决方案2】:

提及 Laravel 7 路线:

Route::post('create_paypal_plan','App\Http\Controllers\PaypallController@create_plan');

就这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-10
    • 2023-03-19
    • 2021-01-06
    • 2020-12-12
    • 1970-01-01
    • 2017-06-04
    • 2016-07-09
    • 2015-01-21
    相关资源
    最近更新 更多