Forte: Refactor authorization (#90)

* include sc in pay

* refactor authorize

* include sc in pay livewire
This commit is contained in:
Benjamin Beganović 2024-08-30 01:17:31 +02:00
parent 1add1b392f
commit eb914df7ac
3 changed files with 32 additions and 19 deletions

View File

@ -6,9 +6,8 @@
<meta name="credit-card-invalid" content="{{ ctrans('texts.credit_card_invalid') }}"> <meta name="credit-card-invalid" content="{{ ctrans('texts.credit_card_invalid') }}">
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="{{ asset('js/clients/payments/forte-card-js.min.js') }}"></script> <script src="{{ asset('vendor/simple-card@0.0.3/simple-card.js') }}"></script>
<link href="{{ asset('css/card-js.min.css') }}" rel="stylesheet" type="text/css">
@if($gateway->company_gateway->getConfigField('testMode')) @if($gateway->company_gateway->getConfigField('testMode'))
<script type="text/javascript" src="https://sandbox.forte.net/api/js/v1"></script> <script type="text/javascript" src="https://sandbox.forte.net/api/js/v1"></script>
@else @else
@ -70,7 +69,19 @@
@endsection @endsection
@section('gateway_footer') @section('gateway_footer')
<script> <script defer>
const sc = createSimpleCard({
fields: {
card: {
number: '#number',
date: '#date',
cvv: '#cvv',
},
},
});
sc.mount();
function onTokenCreated(params) { function onTokenCreated(params) {
document.getElementById('one_time_token').value=params.onetime_token; document.getElementById('one_time_token').value=params.onetime_token;
document.getElementById('last_4').value=params.last_4; document.getElementById('last_4').value=params.last_4;
@ -82,9 +93,9 @@
document.getElementById("forte_errors").innerHTML = errors; document.getElementById("forte_errors").innerHTML = errors;
} }
function submitCard(){ function submitCard(){
var doc = document.getElementsByClassName("card-number-wrapper"); let cardType = sc.type();
var cardType=doc[0].childNodes[1].classList[2];
if (cardType=='master-card') { if (cardType=='mastercard') {
document.getElementById('card_type').value='mast'; document.getElementById('card_type').value='mast';
} else if(cardType=='visa') { } else if(cardType=='visa') {
document.getElementById('card_type').value='visa'; document.getElementById('card_type').value='visa';
@ -92,30 +103,27 @@
document.getElementById('card_type').value='jcb'; document.getElementById('card_type').value='jcb';
}else if(cardType=='discover') { }else if(cardType=='discover') {
document.getElementById('card_type').value='disc'; document.getElementById('card_type').value='disc';
}else if(cardType=='american-express') { }else if(cardType=='amex') {
document.getElementById('card_type').value='amex'; document.getElementById('card_type').value='amex';
}else{ }else{
document.getElementById('card_type').value=cardType; document.getElementById('card_type').value=cardType;
} }
var month=document.querySelector('input[name=expiry-month]').value;
var year=document.querySelector('input[name=expiry-year]').value; document.getElementById('expire_year').value = `20${sc.value('year')?.replace(/[^\d]/g, '')}`;
var cc=document.getElementById('card_number').value.replaceAll(' ',''); document.getElementById('expire_month').value= sc.value('month')?.replace(/[^\d]/g, '');
var cvv=document.getElementById('cvv').value;
document.getElementById('expire_year').value=year;
document.getElementById('expire_month').value=month;
var data = { var data = {
api_login_id: '{{$gateway->company_gateway->getConfigField("apiLoginId")}}', api_login_id: '{{ $gateway->company_gateway->getConfigField("apiLoginId") }}',
card_number: cc, card_number: sc.value('number')?.replace(/[^\d]/g, ''),
expire_year: year, expire_year: `20${sc.value('year')?.replace(/[^\d]/g, '')}`,
expire_month: month, expire_month: sc.value('month')?.replace(/[^\d]/g, ''),
cvv: cvv, cvv: sc.value('cvv')?.replace(/[^\d]/g, ''),
} }
forte.createToken(data) forte.createToken(data)
.success(onTokenCreated) .success(onTokenCreated)
.error(onTokenFailed); .error(onTokenFailed);
return false; return false;
} }
</script> </script>

View File

@ -77,6 +77,8 @@
@else @else
<script type="text/javascript" src="https://api.forte.net/js/v1"></script> <script type="text/javascript" src="https://api.forte.net/js/v1"></script>
@endif @endif
<script src="{{ asset('vendor/simple-card@0.0.3/simple-card.js') }}"></script>
@vite('resources/js/clients/payments/forte-credit-card-payment.js') @vite('resources/js/clients/payments/forte-credit-card-payment.js')
@endsection @endsection

View File

@ -33,11 +33,14 @@
</div> </div>
@assets @assets
@if($gateway->company_gateway->getConfigField('testMode')) @if($gateway->company_gateway->getConfigField('testMode'))
<script type="text/javascript" src="https://sandbox.forte.net/api/js/v1"></script> <script type="text/javascript" src="https://sandbox.forte.net/api/js/v1"></script>
@else @else
<script type="text/javascript" src="https://api.forte.net/js/v1"></script> <script type="text/javascript" src="https://api.forte.net/js/v1"></script>
@endif @endif
<script src="{{ asset('vendor/simple-card@0.0.3/simple-card.js') }}"></script>
@vite('resources/js/clients/payments/forte-credit-card-payment.js') @vite('resources/js/clients/payments/forte-credit-card-payment.js')
@endassets @endassets