feat: ✨ Render all available payment gateways from controller
This commit is contained in:
parent
69dd7a6855
commit
1f79a19943
|
@ -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 -->
|
||||||
|
|
||||||
<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
|
@endsection
|
Loading…
Reference in a new issue