| Path : /var/www/html/thb_loan_system/resources/views/client/ |
|
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
| Current File : //var/www/html/thb_loan_system/resources/views/client/pay.blade.php |
@extends('client.layout')
@section('title')
{{ translate('pay') }}
@endsection
@section('content')
<style>
/* CSS for Credit Card Payment form */
.credit-card-box .panel-title {
display: inline;
font-weight: bold;
}
.credit-card-box .form-control.error {
border-color: red;
outline: 0;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(255, 0, 0, 0.6);
}
.credit-card-box label.error {
font-weight: bold;
color: red;
padding: 2px 8px;
margin-top: 2px;
}
.credit-card-box .payment-errors {
font-weight: bold;
color: red;
padding: 2px 8px;
margin-top: 2px;
}
.credit-card-box label {
display: block;
}
/* The old "center div vertically" hack */
.credit-card-box .display-table {
display: table;
}
.credit-card-box .display-tr {
display: table-row;
}
.credit-card-box .display-td {
display: table-cell;
vertical-align: middle;
width: 50%;
}
/* Just looks nicer */
.credit-card-box .panel-heading img {
min-width: 180px;
}
</style>
<div class="row">
<div class="col-md-12">
<div class="panel panel-white">
<div class="panel-heading">
<h6 class="panel-title">{{ translate('pay') }}</h6>
<div class="heading-elements">
</div>
</div>
<div class="panel-body">
<div class="form-group">
{!! Form::label('payment_gateway',translate('payment').' '.translate('method'),array('class'=>'')) !!}
{!! Form::select('payment_gateway',$methods,null, array('class' => 'form-control','id'=>'method','required'=>'required')) !!}
</div>
<div>
{!! Form::open(array('url' => '', 'method' => 'post', 'id' => 'payment_form',"enctype"=>"multipart/form-data")) !!}
<div class="form-group">
{!! Form::label('amount',translate('amount'),array('class'=>'')) !!}
{!! Form::text('amount',$due, array('class' => 'form-control touchspin', 'placeholder'=>'','required'=>'required')) !!}
</div>
<div class="form-group" id="mpesa_mobile">
{!! Form::label('mobile',translate('mobile'),array('class'=>'')) !!}
{!! Form::number('mobile',$borrower->mobile, array('class' => 'form-control', 'placeholder'=>'','id'=>'mobile')) !!}
</div>
<div class="col-md-6" style="display: none;">
<input name="rm" value="2" type="hidden">
<input name="cmd" value="_xclick" type="hidden">
<input name="currency_code"
value="{{ \App\Models\Setting::where('setting_key', 'currency')->first()->setting_value }}"
type="hidden">
<input name="quantity" value="1" type="hidden">
<input name="business"
value="{{ \App\Models\Setting::where('setting_key', 'paypal_email')->first()->setting_value }}"
type="hidden">
<input name="return" value="{{ url('client/loan/'.$loan->id.'/pay/paypal/done') }}"
type="hidden">
<input name="cancel_return"
value="{{ url('client/loan/'.$loan->id.'/pay/paypal/cancel') }}"
type="hidden">
<input name="notify_url"
value="{{ url('client/loan/pay/paypal/ipn') }}" type="hidden">
<input name="custom" value="" type="hidden">
<input name="item_name" value="Loan Repayment" type="hidden">
<input name="item_number" value="{{ $loan->id }}" type="hidden">
</div>
<button type="submit" class="btn btn-primary" id="pay">{{translate('pay')}}</button>
<p><br></p>
{!! Form::close() !!}
</div>
<div class="row" id="stripeForm">
<div class="col-md-6">
<div class="panel panel-default credit-card-box">
<div class="panel-heading display-table">
<div class="row display-tr">
<h3 class="panel-title display-td">Payment Details</h3>
<div class="display-td">
<img class="img-responsive pull-right"
src="http://i76.imgup.net/accepted_c22e0.png">
</div>
</div>
</div>
<div class="panel-body">
<form role="form" id="payment-form" method="POST" action="javascript:void(0);">
<div class="form-group">
<div class="form-line">
{!! Form::label(translate('amount'),null,array('class'=>' control-label')) !!}
{!! Form::text('amount',$due,array('class'=>'form-control touchspin','required'=>'required','id'=>'stripe_amount')) !!}
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label for="cardNumber">CARD NUMBER</label>
<div class="input-group">
<input
type="tel"
class="form-control"
name="cardNumber"
placeholder="Valid Card Number"
autocomplete="cc-number"
required autofocus
/>
<span class="input-group-addon"><i
class="fa fa-credit-card"></i></span>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-7 col-md-7">
<div class="form-group">
<label for="cardExpiry"><span
class="hidden-xs">EXPIRATION</span><span
class="visible-xs-inline">EXP</span> DATE</label>
<input
type="tel"
class="form-control"
name="cardExpiry"
placeholder="MM / YY"
autocomplete="cc-exp"
required
/>
</div>
</div>
<div class="col-xs-5 col-md-5 pull-right">
<div class="form-group">
<label for="cardCVC">CV CODE</label>
<input
type="tel"
class="form-control"
name="cardCVC"
placeholder="CVC"
autocomplete="cc-csc"
required
/>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<button class="subscribe btn btn-success btn-lg btn-block"
type="button">{{translate('pay')}}
</button>
</div>
</div>
<div class="row" style="display:none;">
<div class="col-xs-12">
<p class="payment-errors"></p>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<div class="panel-footer">
</div>
</div>
</div>
</div>
@endsection
@section('footer-scripts')
<script>
$(document).ready(function () {
});
</script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/jquery.payment/1.2.3/jquery.payment.min.js"></script>
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
<script>
if ($('#method').val() == 'paynow') {
$('#stripeForm').hide();
$('#payment_form').show();
$('#mpesa_mobile').hide();
$('#mobile').removeAttr("required");
$('#payment_form').attr('action', "{!! url('client/loan/'.$loan->id.'/pay/paynow') !!}");
}
if ($('#method').val() == 'paypal') {
$('#payment_form').attr('action', "https://www.paypal.com/cgi-bin/webscr");
$('#stripeForm').hide();
$('#mpesa_mobile').hide();
$('#mobile').removeAttr("required");
$('#payment_form').show();
}
if ($('#method').val() == 'mpesa_kenya') {
$('#stripeForm').hide();
$('#payment_form').show();
$('#mpesa_mobile').show();
$('#mobile').attr("required", "required");
$('#payment_form').attr('action', "{!! url('client/loan/'.$loan->id.'/pay/mpesa') !!}");
}
if ($('#method').val() == 'stripe') {
$('#payment_form').hide();
$('#stripeForm').show();
}
$('#method').change(function (e) {
if ($('#method').val() == 'paynow') {
$('#stripeForm').hide();
$('#payment_form').show();
$('#mpesa_mobile').hide();
$('#mobile').removeAttr("required");
$('#payment_form').attr('action', "{!! url('client/loan/'.$loan->id.'/pay/paynow') !!}");
}
if ($('#method').val() == 'paypal') {
$('#payment_form').attr('action', "https://www.paypal.com/cgi-bin/webscr");
$('#stripeForm').hide();
$('#mpesa_mobile').hide();
$('#mobile').removeAttr("required");
$('#payment_form').show();
}
if ($('#method').val() == 'mpesa_kenya') {
$('#stripeForm').hide();
$('#payment_form').show();
$('#mpesa_mobile').show();
$('#mobile').attr("required", "required");
$('#payment_form').attr('action', "{!! url('client/loan/'.$loan->id.'/pay/mpesa') !!}");
}
if ($('#method').val() == 'stripe') {
$('#payment_form').hide();
$('#stripeForm').show();
}
});
/* Visual feedback */
var $form = $('#payment-form');
$form.find('.subscribe').on('click', payWithStripe);
/* If you're using Stripe for payments */
function payWithStripe(e) {
e.preventDefault();
/* Abort if invalid form data */
if (!validator.form()) {
return;
}
/* Visual feedback */
$form.find('.subscribe').html('Validating <i class="fa fa-spinner fa-pulse"></i>').prop('disabled', true);
var PublishableKey = '{{\App\Models\Setting::where('setting_key', 'stripe_publishable_key')->first()->setting_value}}'; // Replace with your API publishable key
Stripe.setPublishableKey(PublishableKey);
/* Create token */
var expiry = $form.find('[name=cardExpiry]').payment('cardExpiryVal');
var ccData = {
number: $form.find('[name=cardNumber]').val().replace(/\s/g, ''),
cvc: $form.find('[name=cardCVC]').val(),
exp_month: expiry.month,
exp_year: expiry.year
};
Stripe.card.createToken(ccData, function stripeResponseHandler(status, response) {
if (response.error) {
/* Visual feedback */
$form.find('.subscribe').html('Try again').prop('disabled', false);
/* Show Stripe errors on the form */
$form.find('.payment-errors').text(response.error.message);
$form.find('.payment-errors').closest('.row').show();
} else {
/* Visual feedback */
$form.find('.subscribe').html('Processing <i class="fa fa-spinner fa-pulse"></i>');
/* Hide Stripe errors on the form */
$form.find('.payment-errors').closest('.row').hide();
$form.find('.payment-errors').text("");
// response contains id and card, which contains additional card details
console.log(response.id);
console.log(response.card);
var token = response.id;
// AJAX - you would send 'token' to your server here.
$.post('{{url('client/loan/'.$loan->id.'/pay/stripe')}}', {
token: token,
_token: "{{csrf_token()}}",
amount: $('#stripe_amount').val()
})
// Assign handlers immediately after making the request,
.done(function (data, textStatus, jqXHR) {
$form.find('.subscribe').html('Payment successful <i class="fa fa-check"></i>');
window.location = "{{url('client/loan/'.$loan->id.'/show?msg=Payment successful')}}"
})
.fail(function (jqXHR, textStatus, errorThrown) {
$form.find('.subscribe').html('There was a problem').removeClass('success').addClass('error');
/* Show Stripe errors on the form */
$form.find('.payment-errors').text('Try refreshing the page and trying again.');
$form.find('.payment-errors').closest('.row').show();
});
}
});
}
/* Fancy restrictive input formatting via jQuery.payment library*/
$('input[name=cardNumber]').payment('formatCardNumber');
$('input[name=cardCVC]').payment('formatCardCVC');
$('input[name=cardExpiry]').payment('formatCardExpiry');
/* Form validation using Stripe client-side validation helpers */
jQuery.validator.addMethod("cardNumber", function (value, element) {
return this.optional(element) || Stripe.card.validateCardNumber(value);
}, "Please specify a valid credit card number.");
jQuery.validator.addMethod("cardExpiry", function (value, element) {
/* Parsing month/year uses jQuery.payment library */
value = $.payment.cardExpiryVal(value);
return this.optional(element) || Stripe.card.validateExpiry(value.month, value.year);
}, "Invalid expiration date.");
jQuery.validator.addMethod("cardCVC", function (value, element) {
return this.optional(element) || Stripe.card.validateCVC(value);
}, "Invalid CVC.");
validator = $form.validate({
rules: {
cardNumber: {
required: true,
cardNumber: true
},
cardExpiry: {
required: true,
cardExpiry: true
},
cardCVC: {
required: true,
cardCVC: true
}
},
highlight: function (element) {
$(element).closest('.form-control').removeClass('success').addClass('error');
},
unhighlight: function (element) {
$(element).closest('.form-control').removeClass('error').addClass('success');
},
errorPlacement: function (error, element) {
$(element).closest('.form-group').append(error);
}
});
paymentFormReady = function () {
if ($form.find('[name=cardNumber]').hasClass("success") &&
$form.find('[name=cardExpiry]').hasClass("success") &&
$form.find('[name=cardCVC]').val().length > 1) {
return true;
} else {
return false;
}
}
$form.find('.subscribe').prop('disabled', true);
var readyInterval = setInterval(function () {
if (paymentFormReady()) {
$form.find('.subscribe').prop('disabled', false);
clearInterval(readyInterval);
}
}, 250);
</script>
@endsection