1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-14 07:02:34 +01:00
invoiceninja/resources/views/portal/ninja2020/gateways/paypal/pay.blade.php

85 lines
3.2 KiB
PHP
Raw Normal View History

2023-12-16 22:38:30 +01:00
@extends('portal.ninja2020.layout.payments', ['gateway_title' => ctrans('texts.payment_type_credit_card'), 'card_title' => ''])
2023-06-19 06:25:42 +02:00
@section('gateway_head')
2023-06-20 06:25:42 +02:00
2023-06-19 06:25:42 +02:00
@endsection
@section('gateway_content')
2023-06-21 11:22:20 +02:00
<form action="{{ route('client.payments.response') }}" method="post" id="server_response">
@csrf
<input type="hidden" name="payment_hash" value="{{ $payment_hash }}">
<input type="hidden" name="company_gateway_id" value="{{ $gateway->company_gateway->id }}">
<input type="hidden" name="gateway_response" id="gateway_response">
<input type="hidden" name="gateway_type_id" id="gateway_type_id" value="{{ $gateway_type_id }}">
2023-06-21 11:22:20 +02:00
<input type="hidden" name="amount_with_fee" id="amount_with_fee" value="{{ $total['amount_with_fee'] }}"/>
</form>
<div class="alert alert-failure mb-4" hidden id="errors"></div>
2023-12-16 22:38:30 +01:00
<div id="paypal-button-container" class="paypal-button-container"></div>
2023-06-21 13:11:41 +02:00
2023-06-19 06:25:42 +02:00
@endsection
@section('gateway_footer')
@endsection
@push('footer')
2023-06-20 06:25:42 +02:00
<script src="https://www.paypal.com/sdk/js?client-id={!! $client_id !!}&currency={!! $currency !!}&components=buttons,funding-eligibility&intent=capture&enable-funding={!! $funding_source !!}" data-partner-attribution-id="invoiceninja_SP_PPCP"></script>
<div id="paypal-button-container"></div>
2023-06-20 06:25:42 +02:00
<script>
//&buyer-country=US&currency=USD&enable-funding=venmo
const fundingSource = "{!! $funding_source !!}";
const clientId = "{{ $client_id }}";
const orderId = "{!! $order_id !!}";
const environment = "{{ $gateway->company_gateway->getConfigField('testMode') ? 'sandbox' : 'production' }}";
2023-06-21 11:22:20 +02:00
paypal.Buttons({
env: environment,
fundingSource: fundingSource,
client: clientId,
createOrder: function(data, actions) {
return orderId;
},
onApprove: function(data, actions) {
var errorDetail = Array.isArray(data.details) && data.details[0];
if (errorDetail && ['INSTRUMENT_DECLINED', 'PAYER_ACTION_REQUIRED'].includes(errorDetail.issue)) {
2024-03-19 02:17:25 +01:00
return actions.restart();
}
document.getElementById("gateway_response").value =JSON.stringify( data );
document.getElementById("server_response").submit();
2023-06-21 11:22:20 +02:00
},
onCancel: function() {
window.location.href = "/client/invoices/";
},
onError: function(error) {
document.getElementById("gateway_response").value = error;
document.getElementById("server_response").submit();
},
onClick: function (){
2023-06-21 11:22:20 +02:00
if(fundingSource != 'card')
document.getElementById('paypal-button-container').hidden = true;
}
2023-06-23 12:05:36 +02:00
2023-12-12 01:35:36 +01:00
}).render('#paypal-button-container').catch(function(err) {
document.getElementById('errors').textContent = err;
document.getElementById('errors').hidden = false;
});
document.getElementById("server_response").addEventListener('submit', (e) => {
if (document.getElementById("server_response").classList.contains('is-submitting')) {
e.preventDefault();
}
document.getElementById("server_response").classList.add('is-submitting');
});
2023-06-21 11:22:20 +02:00
2023-06-19 07:51:30 +02:00
</script>
2023-06-19 06:25:42 +02:00
@endpush