2017-08-23 1 views
0

J'ai suivi le tutoriel sur http://laravelcode.com/post/how-to-integrate-paypal-payment-gateway-in-laravel-54Laravel tutoriel PayPal dans le scénario du monde réel

J'essaie maintenant de l'utiliser dans une application que je développe, mais je suis tout à fait nouveau pour PHP/Laravel afin d'essayer pour obtenir ces fonctions paypal dans mon propre contrôleur/formulaires que j'ai déjà construit.

J'ai un contrôleur "BookingsController" qui a une forme sur ../bookings/create que lorsque l'UE appuie sur le bouton soumettre, il entrera l'information dans la base de données, qui fonctionne parfaitement, puis exécute les bits PayPal à emmenez l'UE à la caisse de PayPal, là où je suis tombé.

Mon contrôleur: -

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Market; 
use App\Stall; 
use App\Booking; 
use Auth; 
use GuzzleHttp\Transaction; 

class BookingsController extends Controller 
{ 
    /** 
    * Display a listing of the resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() 
    { 
     // 
    } 

    /** 
    * Show the form for creating a new resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function create() 
    { 
     $market = Market::where('is_active', true)->orderBy('name')->pluck('name','id'); 
     $stall = Stall::pluck('name','id')->all(); 
     return view ('bookings.create', compact('market','stall')); 
    } 

    /** 
    * Store a newly created resource in storage. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function store(Request $request) 
    { 
     $this->validate($request, [ 
      'name' => 'required', 
      'email' => 'email', 
      'address' => 'required', 
      'phone' => 'required', 
     ]); 

     //Uncomment the below line to test form values 
     // return $request->all(); 
     $booking = new Booking; 
     $booking->name = $request->input('name'); 
     $booking->email = $request->input('email'); 
     $booking->address = $request->input('address'); 
     $booking->phone = $request->input('phone'); 
     $booking->market_id = $request->input('market_id'); 
     $booking->stall_id = $request->input('stall_id'); 
     $booking->itemtype = $request->input('itemtype'); 
     $booking->clothesrail = $request->input('clothesrail'); 
     $booking->businessname = $request->input('businessname'); 
     $booking->insurance = $request->input('insurance'); 

     //Get the stall cost 
     //$stallPrice = Stall::pluck('cost')->where('id', '=', $booking->stall_id); 
     $stallPrice = 15; 

     //Check if the user is logged in. If so then submit the user_id 
     if (Auth::check()) 
     { 
      $booking->user_id = auth()->user()->id; 
     } 


     //return $stallPrice; 
     //$booking->save(); 

     //Redirect user based on logged in session_status 
     if (Auth::check()) 
     { 
     return redirect('/dashboard')->with('success', 'Stall Booked!'); 
     } 
     return redirect('/confirm')->with('success', 'Stall Booked!'); 
    } 

    /** 
    * Display the specified resource. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function show($id) 
    { 
     // 
    } 

    /** 
    * Show the form for editing the specified resource. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function edit($id) 
    { 
     $booking = Booking::find($id); 
     return view('bookings.edit')->with('booking', $booking); 
    } 

    /** 
    * Update the specified resource in storage. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function update(Request $request, $id) 
    { 
     $this->validate($request, [ 
     'name' => 'required', 
     'email' => 'email', 
     'address' => 'required', 
     'phone' => 'required', 
     ]); 

    $booking = Booking::find($id); 
    $booking->name = $request->input('name'); 
    $booking->email = $request->input('email'); 
    $booking->address = $request->input('address'); 
    $booking->phone = $request->input('phone'); 
    $booking->market_id = $request->input('market_id'); 
    $booking->stall_id = $request->input('stall_id'); 
    $booking->itemtype = $request->input('itemtype'); 
    $booking->clothesrail = $request->input('clothesrail'); 
    $booking->businessname = $request->input('businessname'); 
    $booking->insurance = $request->input('insurance'); 

    //Check if the user is logged in. If so then submit the user_id 
    if (Auth::check()) 
    { 
     $booking->user_id = auth()->user()->id; 
    } 

    $booking->save(); 

    return redirect('/admin/dashboard')->with('success', 'Booking Updated'); 
    } 

    /** 
    * Remove the specified resource from storage. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function destroy($id) 
    { 
     $booking = Booking::find($id); 
     $booking->delete(); 

     return redirect('/admin/dashboard')->with('success', 'Booking Removed'); 
    } 
} 

Mon point de vue de la forme: -

@extends('layouts.app') 

@section('content') 
<div class="row"> 
    <div class="col-md-8 col-md-offset-2"> 
     <div class="panel panel-default"> 
      <div class="panel-heading">Book a Stall</div> 
      <div class="alert alert-info" role="alert">Clothes Rails are not provided. You will need to provide this yourself.</div> 

      <div class="panel-body"> 
       {!!Form::open(['action' => '[email protected]','method' => 'POST'])!!} 

       @if (Auth::check()) 
       {{Form::bsText('name',Auth::user()->name)}} 
       {{Form::bsText('email',Auth::user()->email)}} 
       {{Form::bsText('address',Auth::user()->address)}} 
       {{Form::bsText('phone',Auth::user()->phone)}} 
       @else 
       {{Form::bsText('name','',['placeholder' => 'Name'])}} 
       {{Form::bsText('email','',['placeholder' => 'Email'])}} 
       {{Form::bsText('address','',['placeholder' => 'Address'])}} 
       {{Form::bsText('phone','',['placeholder' => 'Phone'])}} 
       @endif 

       <div class="form-group"> 
        {!! Form::label('market_id', 'Date:') !!} 
        {!! Form::select('market_id', $market , null, ['class'=>'form-control'])!!} 
       </div> 
       <div class="form-group"> 
        {!! Form::label('stall_id', 'Type of stall:') !!} 
        {!! Form::select('stall_id', $stall , null, ['id' => 'stall_id', 'class'=>'form-control'])!!} 
       </div> 
       {{Form::bsText('itemtype','',['placeholder' => 'Type of items to sell'])}} 
       <div class="form-group"> 
        {!! Form::label('clothesrail', 'Clothes Rail?:') !!} 
        {!! Form::label('clothesrail', 'Yes') !!} 
        {!! Form::radio('clothesrail', 1, ['class'=>'form-control'])!!} 
        {!! Form::label('clothesrail', 'No') !!} 
        {!! Form::radio('clothesrail', 0, ['class'=>'form-control'])!!} 
       </div> 

       <div class="form-group"> 
        {!! Form::label('businessname', 'Business Name:') !!} 
        {!! Form::text('businessname', null, ['id' => 'businessname', 'class'=>'form-control hidden'])!!} 
       </div> 

       <div class="form-group"> 
        {!! Form::label('insurance', 'Public Liability Insurance??:') !!} 
        {!! Form::label('insurance', 'Yes') !!} 
        {!! Form::radio('insurance', 1, ['id' => 'insurance', 'class'=>'form-control'])!!} 
        {!! Form::label('insurance', 'No') !!} 
        {!! Form::radio('insurance', 0, ['id' => 'insurance', 'class'=>'form-control'])!!} 
       </div> 
       {{Form::bsSubmit('Submit')}} 
       {!! Form::close() !!} 
      </div> 
     </div> 
    </div> 
</div> 
@endsection 

NOTES:

  • Le bouton SOUMETTRE appelle la méthode "stocker" dans le contrôleur
  • Je ne peux pas obtenir le prix de décrochage à tirer de la sélection de l'utilisateur dans le variable mais je traiterai de cela plus tard car je peux corriger cela, je travaille juste avec une variable de valeur fixe pour le faire fonctionner.

Répondre

1

Tout changement:

$stallPrice = Stall::pluck('cost')->where('id', '=', $booking->stall_id); 

À

$stallPrice = DB::table('your_stall_table')->find($booking->stall_id)->cost; 

, vous avez besoin ici pour your_stall_table avec votre nom de la table de décrochage réelle.

+0

Merci d'avoir corrigé cela! Maintenant j'ai juste besoin de l'obtenir pour traiter le paiement! – Luke

+0

Sans aucun détail, ne peut pas vous aider –

+0

Voir ci-dessus, j'utilise le tutoriel qui a son propre contrôleur et vue/formulaire mais j'ai besoin de mon formulaire pour être traité par PayPal en utilisant la solution dans le tutoriel et la définition des variables le paiement PayPal – Luke