feat: Render all available payment gateways from controller

This commit is contained in:
IceToast 2023-01-14 23:34:10 +01:00
parent 69dd7a6855
commit 1f79a19943

View file

@ -10,8 +10,7 @@
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<ol class="breadcrumb float-sm-right"> <ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a class="" <li class="breadcrumb-item"><a class="" href="{{ route('home') }}">{{ __('Dashboard') }}</a></li>
href="{{ route('home') }}">{{ __('Dashboard') }}</a></li>
<li class="breadcrumb-item"><a class="text-muted" <li class="breadcrumb-item"><a class="text-muted"
href="{{ route('store.index') }}">{{ __('Store') }}</a> href="{{ route('store.index') }}">{{ __('Store') }}</a>
</li> </li>
@ -23,157 +22,123 @@
<!-- END CONTENT HEADER --> <!-- END CONTENT HEADER -->
<!-- MAIN CONTENT --> <!-- MAIN CONTENT -->
<section x-data="serverApp()" x-init="$watch('paymentMethod', value => setPaymentRoute(value))" class="content"> <section class="content">
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<form action="{{ route('payment.pay') }}" method="POST">
<!-- Main content --> @csrf
<div class="invoice p-3 mb-3"> @method('post')
<!-- title row --> <!-- Main content -->
<div class="row"> <div class="invoice p-3 mb-3">
<div class="col-12"> <!-- title row -->
<h4> <div class="row">
<i class="fas fa-globe"></i> {{ config('app.name', 'Laravel') }} <div class="col-12">
<small class="float-right">{{ __('Date') }}: <h4>
{{ Carbon\Carbon::now()->isoFormat('LL') }}</small> <i class="fas fa-globe"></i> {{ config('app.name', 'Laravel') }}
</h4> <small class="float-right">{{ __('Date') }}:
{{ Carbon\Carbon::now()->isoFormat('LL') }}</small>
</h4>
</div>
<!-- /.col -->
</div> </div>
<!-- /.col -->
</div>
<!-- Table row --> <!-- Table row -->
<div class="row"> <div class="row">
<div class="col-12 table-responsive"> <div class="col-12 table-responsive">
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
<tr> <tr>
<th>{{ __('Quantity') }}</th> <th>{{ __('Quantity') }}</th>
<th>{{ __('Product') }}</th> <th>{{ __('Product') }}</th>
<th>{{ __('Description') }}</th> <th>{{ __('Description') }}</th>
<th>{{ __('Subtotal') }}</th> <th>{{ __('Subtotal') }}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td>1</td> <td>1</td>
<td><i class="fa fa-coins mr-2"></i>{{ $product->quantity }} <td><i class="fa fa-coins mr-2"></i>{{ $product->quantity }}
{{ strtolower($product->type) == 'credits' ? CREDITS_DISPLAY_NAME : $product->type }} {{ strtolower($product->type) == 'credits' ? CREDITS_DISPLAY_NAME : $product->type }}
</td> </td>
<td>{{ $product->description }}</td> <td>{{ $product->description }}</td>
<td>{{ $product->formatToCurrency($product->price) }}</td> <td>{{ $product->formatToCurrency($product->price) }}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<input type="hidden" name="product_id" value="{{ $product->id }}">
</div>
<!-- /.col -->
</div> </div>
<!-- /.col --> <!-- /.row -->
</div>
<!-- /.row -->
<div class="row"> <div class="row">
<!-- accepted payments column --> <!-- accepted payments column -->
<div class="col-6"> <div class="col-6">
@if($total!=0)
<p class="lead">{{ __('Payment Methods') }}:</p> <p class="lead">{{ __('Payment Methods') }}:</p>
<div> <div>
@if (config('SETTINGS::PAYMENTS:PAYPAL:SECRET') || config('SETTINGS::PAYMENTS:PAYPAL:SANDBOX_SECRET')) @foreach ($paymentGateways as $gateway)
<label class="text-center " for="paypal"> <label class="text-center" for="{{ $gateway->name }}">
<img class="mb-3" height="50" <img class="mb-3" height="50" src="{{ $gateway->image }}"></br>
src="{{ url('/images/paypal_logo.png') }}"></br> <input x-model="payment_method" type="radio" id="{{ $gateway->name }}"
value="{{ $gateway->name }}" name="payment_method">
<input x-model="paymentMethod" type="radio" id="paypal" value="paypal"
name="payment_method">
</input> </input>
</label> </label>
@endif @endforeach
@if (config('SETTINGS::PAYMENTS:STRIPE:TEST_SECRET') || config('SETTINGS::PAYMENTS:STRIPE:SECRET'))
<label class="ml-5 text-center " for="stripe">
<img class="mb-3" height="50"
src="{{ url('/images/stripe_logo.png') }}" /></br>
<input x-model="paymentMethod" type="radio" id="stripe" value="stripe"
name="payment_method">
</input>
</label>
@endif
</div> </div>
@else
<p class="lead" style="text-align: center">{{ __('This product is free for you') }}.</p>
@endif
</div>
<!-- /.col -->
<div class="col-6">
<p class="lead">{{ __('Amount Due') }}
{{ Carbon\Carbon::now()->isoFormat('LL') }}</p>
<div class="table-responsive"> </div>
<table class="table"> <!-- /.col -->
@if($discountpercent&&$discountvalue) <div class="col-6">
<p class="lead">{{ __('Amount Due') }}
{{ Carbon\Carbon::now()->isoFormat('LL') }}</p>
<div class="table-responsive">
<table class="table">
@if ($discountpercent && $discountvalue)
<tr>
<th>{{ __('Discount') }} ({{ $discountpercent }}%):</th>
<td>{{ $product->formatToCurrency($discountvalue) }}</td>
</tr>
@endif
<tr> <tr>
<th>{{ __('Discount') }} ({{ $discountpercent }}%):</th> <th style="width:50%">{{ __('Subtotal') }}:</th>
<td>{{$product->formatToCurrency($discountvalue)}}</td> <td>{{ $product->formatToCurrency($discountedprice) }}</td>
</tr> </tr>
@endif <tr>
<tr> <th>{{ __('Tax') }} ({{ $taxpercent }}%):</th>
<th style="width:50%">{{ __('Subtotal') }}:</th> <td>{{ $product->formatToCurrency($taxvalue) }}</td>
<td>{{ $product->formatToCurrency($discountedprice) }}</td> </tr>
</tr> <tr>
<tr> <th>{{ __('Total') }}:</th>
<th>{{ __('Tax') }} ({{ $taxpercent }}%):</th> <td>{{ $product->formatToCurrency($total) }}</td>
<td>{{ $product->formatToCurrency($taxvalue) }}</td> </tr>
</tr> </table>
<tr> </div>
<th>{{ __('Total') }}:</th> </div>
<td>{{ $product->formatToCurrency($total) }}</td> <!-- /.col -->
</tr> </div>
</table> <!-- /.row -->
<!-- this row will not appear when printing -->
<div class="row no-print">
<div class="col-12">
<button x-on="console.log('Method', paymentMethod)" :disabled="!paymentMethod"
:class="!paymentMethod ? 'disabled' : ''" class="btn btn-success float-right"><i
class="far fa-credit-card mr-2"></i>
{{ __('Submit Payment') }}
</button>
</div> </div>
</div> </div>
<!-- /.col -->
</div> </div>
<!-- /.row --> </form>
<!-- this row will not appear when printing -->
<div class="row no-print">
<div class="col-12">
<a type="button" :href="paymentRoute" :disabled="!paymentRoute"
:class="!paymentRoute ? 'disabled' : ''" class="btn btn-success float-right"><i
class="far fa-credit-card mr-2"></i>
{{ __('Submit Payment') }}
</a>
</div>
</div>
</div>
<!-- /.invoice --> <!-- /.invoice -->
</div><!-- /.col --> </div><!-- /.col -->
</div><!-- /.row --> </div><!-- /.row -->
</div> </div>
</section> </section>
<!-- END CONTENT --> <!-- END CONTENT -->
@endsection
<script>
function serverApp() {
return {
//loading
paymentMethod: '',
paymentRoute: ({{ $total }} == 0)?('{{ route('payment.FreePay', $product->id) }}'):'',
setPaymentRoute(provider) {
switch (provider) {
case 'paypal':
this.paymentRoute = '{{ route('payment.PaypalPay', $product->id) }}';
break;
case 'stripe':
this.paymentRoute = '{{ route('payment.StripePay', $product->id) }}';
break;
default:
this.paymentRoute = '{{ route('payment.PaypalPay', $product->id) }}';
}
},
}
}
</script>
@endsection