【问题标题】:Laravel 5.2 and PayPayl integration for payments?Laravel 5.2 和 PayPay 集成支付?
【发布时间】:2016-06-25 19:03:48
【问题描述】:

我是 Laravel 的新手,我正在尝试在我的网站上实现 PayPal。

已经尝试在 GitHub 上搜索 PayPal 包,但大多数都已过时,或者没有足够的文档。

所以我在这里问是否有人有在 Laravel 5.2 上集成 PayPal 支付(快速结账)的想法?

【问题讨论】:

    标签: php laravel paypal laravel-5.2


    【解决方案1】:

    所以我拿了这个包裹; http://packalyst.com/packages/package/netshell/paypal

    按照文档中的说明进行操作,composer require netshell/paypal dev-master,然后在 app.php 上添加 service provideralias

    我尝试了给出的“ExampleController”,创建了一个名为“PaymentController”的新控制器,并在我的 routes.php 中添加了几行。

    这是我的 PaymentController;

    'namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use Gloudemans\Shoppingcart\Facades\Cart;
    use PayPal;
    use Redirect;
    use App\Http\Requests;
    
    class PaymentController extends Controller
    {
        private $_apiContext;
    
        public function __construct()
        {
            $this->_apiContext = PayPal::ApiContext(
                config('services.paypal.client_id'),
                config('services.paypal.secret'));
    
            $this->_apiContext->setConfig(array(
                'mode' => 'sandbox',
                'service.EndPoint' => 'https://api.sandbox.paypal.com',
                'http.ConnectionTimeOut' => 30,
                'log.LogEnabled' => true,
                'log.FileName' => storage_path('logs/paypal.log'),
                'log.LogLevel' => 'FINE'
            ));
    
        }
    
        public function getCheckout()
        {
            $payer = PayPal::Payer();
            $payer->setPaymentMethod('paypal');
    
            $amount = PayPal:: Amount();
            $amount->setCurrency('EUR');
            $amount->setTotal(42); // This is the simple way,
            // you can alternatively describe everything in the order separately;
            // Reference the PayPal PHP REST SDK for details.
    
            $transaction = PayPal::Transaction();
            $transaction->setAmount($amount);
            $transaction->setDescription('What are you selling?');
    
            $redirectUrls = PayPal:: RedirectUrls();
            $redirectUrls->setReturnUrl(action('PaymentController@getDone'));
            $redirectUrls->setCancelUrl(action('PaymentController@getCancel'));
    
            $payment = PayPal::Payment();
            $payment->setIntent('sale');
            $payment->setPayer($payer);
            $payment->setRedirectUrls($redirectUrls);
            $payment->setTransactions(array($transaction));
    
            $response = $payment->create($this->_apiContext);
            $redirectUrl = $response->links[1]->href;
    
            return Redirect::to( $redirectUrl );
        }
    
        public function getDone(Request $request)
        {
            $id = $request->get('paymentId');
            $token = $request->get('token');
            $payer_id = $request->get('PayerID');
    
            $payment = PayPal::getById($id, $this->_apiContext);
    
            $paymentExecution = PayPal::PaymentExecution();
    
            $paymentExecution->setPayerId($payer_id);
            $executePayment = $payment->execute($paymentExecution, $this->_apiContext);
    
            // Clear the shopping cart, write to database, send notifications, etc.
    
            // Thank the user for the purchase
            return view('checkout.done');
        }
    
        public function getCancel()
        {
            // Curse and humiliate the user for cancelling this most sacred payment (yours)
            return view('checkout.cancel');
        }'
    

    还有我的 routes.php

    `Route::group(['prefix' => 'payment'], function () {
        Route::get('/', 'PaymentController@getCheckout');
    });`
    

    我得到了这个错误

    `InvalidArgumentException in UrlGenerator.php line 603:
    Action App\Http\Controllers\PaymentController@getDone not defined.
    in UrlGenerator.php line 603
    at UrlGenerator->action('PaymentController@getDone', array(), true) in helpers.php line 87
    at action('PaymentController@getDone') in PaymentController.php line 48
    at PaymentController->getCheckout()
    at call_user_func_array(array(object(PaymentController), 'getCheckout'), array()) in Controller.php line 78
    at Controller->callAction('getCheckout', array()) in ControllerDispatcher.php line 146
    at ControllerDispatcher->call(object(PaymentController), object(Route), 'getCheckout') in ControllerDispatcher.php line 94
    at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
    at Pipeline->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
    at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 96
    at ControllerDispatcher->callWithinStack(object(PaymentController), object(Route), object(Request), 'getCheckout') in ControllerDispatcher.php line 54
    at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\PaymentController', 'getCheckout') in Route.php line 174
    at Route->runController(object(Request)) in Route.php line 140
    at Route->run(object(Request)) in Router.php line 724
    at Router->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
    at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 64
    at VerifyCsrfToken->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
    at ShareErrorsFromSession->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 62
    at StartSession->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
    at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
    at EncryptCookies->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
    at Pipeline->then(object(Closure)) in Router.php line 726
    at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 699
    at Router->dispatchToRoute(object(Request)) in Router.php line 675
    at Router->dispatch(object(Request)) in Kernel.php line 246
    at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
    at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
    at CheckForMaintenanceMode->handle(object(Request), object(Closure))
    at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
    at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
    at Pipeline->Illuminate\Routing\{closure}(object(Request))
    at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
    at Pipeline->then(object(Closure)) in Kernel.php line 132
    at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
    at Kernel->handle(object(Request)) in index.php line 54`
    
    猜你喜欢
    • 2020-10-18
    • 2021-06-04
    • 2018-10-19
    • 2018-06-17
    • 2015-06-24
    • 1970-01-01
    • 2012-07-23
    • 2020-06-08
    • 1970-01-01
    相关资源
    最近更新 更多