mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Show name field, when payment could fail
This commit is contained in:
parent
6750230bf0
commit
936451b73e
72
resources/js/clients/payments/stripe-klarna.js
vendored
72
resources/js/clients/payments/stripe-klarna.js
vendored
@ -32,7 +32,7 @@ class ProcessKlarna {
|
|||||||
|
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
handleError = (message) => {
|
handleError = (message) => {
|
||||||
document.getElementById('pay-now').disabled = false;
|
document.getElementById('pay-now').disabled = false;
|
||||||
document.querySelector('#pay-now > svg').classList.add('hidden');
|
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||||
@ -42,42 +42,50 @@ class ProcessKlarna {
|
|||||||
this.errors.textContent = message;
|
this.errors.textContent = message;
|
||||||
this.errors.hidden = false;
|
this.errors.hidden = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
handle = () => {
|
handle = () => {
|
||||||
document.getElementById('pay-now').addEventListener('click', (e) => {
|
document.getElementById('pay-now').addEventListener('click', (e) => {
|
||||||
let errors = document.getElementById('errors');
|
let errors = document.getElementById('errors');
|
||||||
|
let name = document.querySelector('meta[name=name]').content;
|
||||||
document.getElementById('pay-now').disabled = true;
|
if (! "/^[A-Za-z\s]*$/".test(name)){
|
||||||
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
document.getElementById('klarna-name').textContent = name.replace("/^[A-Za-z\s]*$/", "")
|
||||||
document.querySelector('#pay-now > span').classList.add('hidden');
|
document.getElementById('klarna-name').focus();
|
||||||
|
errors.textContent = document.querySelector(
|
||||||
this.stripe.confirmKlarnaPayment(
|
'meta[name=translation-email-required]'
|
||||||
document.querySelector('meta[name=pi-client-secret').content,
|
).content;
|
||||||
{
|
errors.hidden = false;
|
||||||
payment_method: {
|
}
|
||||||
billing_details: {
|
else {
|
||||||
name: document.querySelector('meta[name=name]').content.replace(",", ""),
|
document.getElementById('pay-now').disabled = true;
|
||||||
email: document.querySelector('meta[name=email]').content,
|
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||||
address: {
|
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||||
line1: document.querySelector('meta[name=address-1]').content,
|
this.stripe.confirmKlarnaPayment(
|
||||||
line2: document.querySelector('meta[name=address-2]').content,
|
document.querySelector('meta[name=pi-client-secret').content,
|
||||||
city: document.querySelector('meta[name=city]').content,
|
{
|
||||||
postal_code: document.querySelector('meta[name=plz]').content,
|
payment_method: {
|
||||||
state: document.querySelector('meta[name=state]').content,
|
billing_details: {
|
||||||
country: document.querySelector('meta[name=country]').content,
|
name: name,
|
||||||
}
|
email: document.querySelector('meta[name=email]').content,
|
||||||
|
address: {
|
||||||
|
line1: document.querySelector('meta[name=address-1]').content,
|
||||||
|
line2: document.querySelector('meta[name=address-2]').content,
|
||||||
|
city: document.querySelector('meta[name=city]').content,
|
||||||
|
postal_code: document.querySelector('meta[name=plz]').content,
|
||||||
|
state: document.querySelector('meta[name=state]').content,
|
||||||
|
country: document.querySelector('meta[name=country]').content,
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
return_url: document.querySelector(
|
||||||
return_url: document.querySelector(
|
'meta[name="return-url"]'
|
||||||
'meta[name="return-url"]'
|
).content,
|
||||||
).content,
|
}
|
||||||
}
|
).then((result) => {
|
||||||
).then((result) => {
|
if (result.hasOwnProperty('error')) {
|
||||||
if (result.hasOwnProperty('error')) {
|
return this.handleError(result.error.message);
|
||||||
return this.handleError(result.error.message);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
});
|
});}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
<div id="stripe--payment-container">
|
||||||
|
@component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.name')])
|
||||||
|
<div class="form-group mb-[10px]">
|
||||||
|
<input class="input w-full" id="klarna-name" type="text" placeholder="{{ ctrans('texts.bank_account_holder') }}" value="{{ $gateway->client->present()->name()}}" hidden>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endcomponent
|
||||||
|
</div>
|
@ -19,6 +19,7 @@
|
|||||||
<meta name="state" content="{{ $gateway->client->state }}">
|
<meta name="state" content="{{ $gateway->client->state }}">
|
||||||
<meta name="plz" content="{{ $gateway->client->postal_code }}">
|
<meta name="plz" content="{{ $gateway->client->postal_code }}">
|
||||||
<meta name="pi-client-secret" content="{{ $pi_client_secret }}">
|
<meta name="pi-client-secret" content="{{ $pi_client_secret }}">
|
||||||
|
<meta name="translation-name-without-special-characters" content="{{ ctrans('texts.name_without_special_characters') }}">
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('gateway_content')
|
@section('gateway_content')
|
||||||
@ -29,6 +30,7 @@
|
|||||||
@component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.payment_type')])
|
@component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.payment_type')])
|
||||||
{{ ctrans('texts.klarna') }} ({{ ctrans('texts.bank_transfer') }})
|
{{ ctrans('texts.klarna') }} ({{ ctrans('texts.bank_transfer') }})
|
||||||
@endcomponent
|
@endcomponent
|
||||||
|
@include('portal.ninja2020.gateways.stripe.klarna.klarna')
|
||||||
@include('portal.ninja2020.gateways.includes.pay_now')
|
@include('portal.ninja2020.gateways.includes.pay_now')
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user