Paypal payment method in Laravel -


i think have integrate payment method site.my site developed in laravel.that's why looking way add paypal integration.my site there can visit.

follow bellow few step:
1)install laravel application
2)database configuration
3)install required packages
4)configuration paypal.php file
5)create route
6)create controller
7)create view file

step 1 : install laravel application
going scratch, require fresh laravel application using bellow command, open terminal or command prompt , run bellow command:

 composer create-project --prefer-dist laravel/laravel blog 

step 2 : database configuration
in step, require make database configuration, have add
following details on .env file.
1.database username
1.database password
1.database name

in .env file available host , port details, can configure details in system, can put bellow: .env

db_host=localhost db_database=homestead db_username=homestead db_password=secret 

step 3 : install required packages
have required following 2 packages integrate paypal payment in our laravel application. add following 2 package in composer.json file.

"guzzlehttp/guzzle": "~5.4", "paypal/rest-api-sdk-php": "*", 

then after run following command in terminal

php artisan vendore:publlish 

after run command, after automatic create paypal.php file in config/paypal.php path.

step 4 : configuration paypal.php file

<?php  return array( /** set paypal credential **/ 'client_id' =>'paypal client_id', 'secret' => 'paypal secret id', /** * sdk configuration  */ 'settings' => array(     /**     * available option 'sandbox' or 'live'     */     'mode' => 'sandbox',     /**     * specify max request time in seconds     */     'http.connectiontimeout' => 1000,     /**     * whether want log file     */     'log.logenabled' => true,     /**     * specify file want write on     */     'log.filename' => storage_path() . '/logs/paypal.log',     /**     * available option 'fine', 'info', 'warn' or 'error'     *     * logging verbose in 'fine' level , decreases     * proceed towards error     */     'log.loglevel' => 'fine'     ), ); 

step 5: create route
in step need create route paypal payment. open routes/web.php file , add following route. routes/web.php

route::get('paywithpaypal', array('as' => 'addmoney.paywithpaypal','uses' => 'addmoneycontroller@paywithpaypal',)); route::post('paypal', array('as' => 'addmoney.paypal','uses' => 'addmoneycontroller@postpaymentwithpaypal',)); route::get('paypal', array('as' => 'payment.status','uses' => 'addmoneycontroller@getpaymentstatus',)); 

step 6: create controller
in point, should create new controller addmoneycontroller in path app/http/controllers/addmoneycontroller.php. controller manage layout , payment post request, run bellow command generate new controller:

php artisan make:controller addmoneycontroller 

ok, put bellow content in controller file:
app/http/controllers/addmoneycontroller.php

<?php  namespace app\http\controllers;  use app\http\requests; use illuminate\http\request; use validator; use url; use session; use redirect; use input;  /** paypal details class **/ 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 addmoneycontroller extends homecontroller {      private $_api_context;     /**      * create new controller instance.      *      * @return void      */     public function __construct()     {         parent::__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']);     }        /**      * show application paywith paypalpage.      *      * @return \illuminate\http\response      */     public function paywithpaypal()     {         return view('paywithpaypal');     }      /**      * store details of payment paypal.      *      * @param  \illuminate\http\request  $request      * @return \illuminate\http\response      */     public function postpaymentwithpaypal(request $request)     {         $payer = new payer();         $payer->setpaymentmethod('paypal');          $item_1 = new item();          $item_1->setname('item 1') /** item name **/             ->setcurrency('usd')             ->setquantity(1)             ->setprice($request->get('amount')); /** unit price **/          $item_list = new itemlist();         $item_list->setitems(array($item_1));          $amount = new amount();         $amount->setcurrency('usd')             ->settotal($request->get('amount'));          $transaction = new transaction();         $transaction->setamount($amount)             ->setitemlist($item_list)             ->setdescription('your transaction description');          $redirect_urls = new redirecturls();         $redirect_urls->setreturnurl(url::route('payment.status')) /** specify return url **/             ->setcancelurl(url::route('payment.status'));          $payment = new payment();         $payment->setintent('sale')             ->setpayer($payer)             ->setredirecturls($redirect_urls)             ->settransactions(array($transaction));             /** dd($payment->create($this->_api_context));exit; **/         try {             $payment->create($this->_api_context);         } catch (\paypal\exception\ppconnectionexception $ex) {             if (\config::get('app.debug')) {                 \session::put('error','connection timeout');                 return redirect::route('addmoney.paywithpaypal');                 /** echo "exception: " . $ex->getmessage() . php_eol; **/                 /** $err_data = json_decode($ex->getdata(), true); **/                 /** exit; **/             } else {                 \session::put('error','some error occur, sorry inconvenient');                 return redirect::route('addmoney.paywithpaypal');                 /** die('some error occur, sorry inconvenient'); **/             }         }          foreach($payment->getlinks() $link) {             if($link->getrel() == 'approval_url') {                 $redirect_url = $link->gethref();                 break;             }         }          /** add payment id session **/         session::put('paypal_payment_id', $payment->getid());          if(isset($redirect_url)) {             /** redirect paypal **/             return redirect::away($redirect_url);         }          \session::put('error','unknown error occurred');         return redirect::route('addmoney.paywithpaypal');     }      public function getpaymentstatus()     {         /** payment id before session clear **/         $payment_id = session::get('paypal_payment_id');         /** clear session payment id **/         session::forget('paypal_payment_id');         if (empty(input::get('payerid')) || empty(input::get('token'))) {             \session::put('error','payment failed');             return redirect::route('addmoney.paywithpaypal');         }         $payment = payment::get($payment_id, $this->_api_context);         /** paymentexecution object includes information necessary **/         /** execute paypal account payment. **/         /** payer_id added request query parameters **/         /** when user redirected paypal site **/         $execution = new paymentexecution();         $execution->setpayerid(input::get('payerid'));         /**execute payment **/         $result = $payment->execute($execution, $this->_api_context);         /** dd($result);exit; /** debug result, remove later **/         if ($result->getstate() == 'approved') {               /** it's right **/             /** here write database logic insert record or value in database if want **/              \session::put('success','payment success');             return redirect::route('addmoney.paywithpaypal');         }         \session::put('error','payment failed');          return redirect::route('addmoney.paywithpaypal');     }   } 

step 7: create view
in last step, let's create paywithpaypal.blade.php(resources/views/paywithpaypal.blade.php) layout , write design code here , form pay amount paypal, put following code: resources/views/paywithpaypal.blade.php

@extends('layouts.app')  @section('content') <div class="container">     <div class="row">         <div class="col-md-8 col-md-offset-2">             <div class="panel panel-default">                 @if ($message = session::get('success'))                 <div class="custom-alerts alert alert-success fade in">                     <button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>                     {!! $message !!}                 </div>                 <?php session::forget('success');?>                 @endif                  @if ($message = session::get('error'))                 <div class="custom-alerts alert alert-danger fade in">                     <button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>                     {!! $message !!}                 </div>                 <?php session::forget('error');?>                 @endif                 <div class="panel-heading">paywith paypal</div>                 <div class="panel-body">                     <form class="form-horizontal" method="post" id="payment-form" role="form" action="{!! url::route('addmoney.paypal') !!}" >                         {{ csrf_field() }}                          <div class="form-group{{ $errors->has('amount') ? ' has-error' : '' }}">                             <label for="amount" class="col-md-4 control-label">amount</label>                              <div class="col-md-6">                                 <input id="amount" type="text" class="form-control" name="amount" value="{{ old('amount') }}" autofocus>                                  @if ($errors->has('amount'))                                     <span class="help-block">                                         <strong>{{ $errors->first('amount') }}</strong>                                     </span>                                 @endif                             </div>                         </div>                          <div class="form-group">                             <div class="col-md-6 col-md-offset-4">                                 <button type="submit" class="btn btn-primary">                                     paywith paypal                                 </button>                             </div>                         </div>                     </form>                 </div>             </div>         </div>     </div> </div> @endsection 

now ready run our example run bellow command ro quick run:

php artisan serve 

now can open bellow url on browser:

http://localhost:8000/paywithpaypal 

please visit toturials link..

https://www.youtube.com/watch?v=ly2xm_nm46g


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -