mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-16 17:24:39 -04:00
Added js for becs
This commit is contained in:
parent
2dc8a51dd6
commit
aba570a2e5
1
public/js/clients/payments/stripe-becs.js
vendored
Normal file
1
public/js/clients/payments/stripe-becs.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
!function(n){var o={};function r(e){if(o[e])return o[e].exports;var t=o[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,r),t.l=!0,t.exports}r.m=n,r.c=o,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r(r.s=28)}({28:function(e,t,n){e.exports=n("guV3")},guV3:function(e,t){var n;function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var a=(o(u.prototype,[{key:"handleSuccess",value:function(e){document.querySelector('input[name="gateway_response"]').value=JSON.stringify(e.paymentIntent),document.getElementById("server-response").submit()}},{key:"handleFailure",value:function(e){var t=document.getElementById("errors");t.textContent="",t.textContent=e,t.hidden=!1,document.getElementById("pay-now").disabled=!1,document.querySelector("#pay-now > svg").classList.add("hidden"),document.querySelector("#pay-now > span").classList.remove("hidden")}}]),u),c=null!==(n=null===(c=document.querySelector('meta[name="stripe-publishable-key"]'))||void 0===c?void 0:c.content)&&void 0!==n?n:"",i=null!==(n=null===(n=document.querySelector('meta[name="stripe-account-id"]'))||void 0===n?void 0:n.content)&&void 0!==n?n:"";function u(e,t){var n=this;!function(e){if(!(e instanceof u))throw new TypeError("Cannot call a class as a function")}(this),r(this,"setupStripe",function(){n.stripe=Stripe(n.key),n.stripeConnect&&(n.stripe.stripeAccount=i);const e=n.stripe.elements();var t={style:{base:{color:"#32325d",fontSize:"16px","::placeholder":{color:"#aab7c4"},":-webkit-autofill":{color:"#32325d"}},invalid:{color:"#fa755a",iconColor:"#fa755a",":-webkit-autofill":{color:"#fa755a"}}},disabled:!1,hideIcon:!1,iconStyle:"default"};return n.auBankAccount=e.create("auBankAccount",t),n.auBankAccount.mount("#becs-iban"),n}),r(this,"handle",function(){document.getElementById("pay-now").addEventListener("click",e=>{let t=document.getElementById("errors");return""===document.getElementById("becs-name").value?(document.getElementById("becs-name").focus(),t.textContent="Name required.",void(t.hidden=!1)):""===document.getElementById("becs-email-address").value?(document.getElementById("becs-email-address").focus(),t.textContent="Email required.",void(t.hidden=!1)):document.getElementById("becs-mandate-acceptance").checked?(document.getElementById("pay-now").disabled=!0,document.querySelector("#pay-now > svg").classList.remove("hidden"),document.querySelector("#pay-now > span").classList.add("hidden"),void this.stripe.confirmAuBecsDebitPayment(document.querySelector("meta[name=pi-client-secret").content,{payment_method:{au_becs_debit:this.auBankAccount,billing_details:{name:document.getElementById("becs-name").value,email:document.getElementById("becs-email-address").value}}}).then(e=>e.error?this.handleFailure(e.error.message):this.handleSuccess(e))):(document.getElementById("becs-mandate-acceptance").focus(),t.textContent="Accept Terms",t.hidden=!1,void console.log("Terms"))})}),this.key=e,this.errors=document.getElementById("errors"),this.stripeConnect=t}new a(c,i).setupStripe().handle()}});
|
9
public/js/clients/payments/stripe-becs.js.LICENSE.txt
Normal file
9
public/js/clients/payments/stripe-becs.js.LICENSE.txt
Normal file
@ -0,0 +1,9 @@
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
136
resources/js/clients/payments/stripe-becs.js
vendored
Normal file
136
resources/js/clients/payments/stripe-becs.js
vendored
Normal file
@ -0,0 +1,136 @@
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
class ProcessBECS {
|
||||
constructor(key, stripeConnect) {
|
||||
this.key = key;
|
||||
this.errors = document.getElementById('errors');
|
||||
this.stripeConnect = stripeConnect;
|
||||
}
|
||||
|
||||
setupStripe = () => {
|
||||
this.stripe = Stripe(this.key);
|
||||
|
||||
if(this.stripeConnect)
|
||||
this.stripe.stripeAccount = stripeConnect;
|
||||
const elements = this.stripe.elements();
|
||||
const style = {
|
||||
base: {
|
||||
color: '#32325d',
|
||||
fontSize: '16px',
|
||||
'::placeholder': {
|
||||
color: '#aab7c4'
|
||||
},
|
||||
':-webkit-autofill': {
|
||||
color: '#32325d',
|
||||
},
|
||||
},
|
||||
invalid: {
|
||||
color: '#fa755a',
|
||||
iconColor: '#fa755a',
|
||||
':-webkit-autofill': {
|
||||
color: '#fa755a',
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
const options = {
|
||||
style: style,
|
||||
disabled: false,
|
||||
hideIcon: false,
|
||||
iconStyle: "default", // or "solid"
|
||||
};
|
||||
this.auBankAccount = elements.create("auBankAccount", options);
|
||||
this.auBankAccount.mount("#becs-iban");
|
||||
return this;
|
||||
};
|
||||
|
||||
handle = () => {
|
||||
document.getElementById('pay-now').addEventListener('click', (e) => {
|
||||
|
||||
let errors = document.getElementById('errors');
|
||||
|
||||
if (document.getElementById('becs-name').value === "") {
|
||||
document.getElementById('becs-name').focus();
|
||||
errors.textContent = "Name required.";
|
||||
errors.hidden = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (document.getElementById('becs-email-address').value === "") {
|
||||
document.getElementById('becs-email-address').focus();
|
||||
errors.textContent = "Email required.";
|
||||
errors.hidden = false;
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
if (!document.getElementById('becs-mandate-acceptance').checked) {
|
||||
document.getElementById('becs-mandate-acceptance').focus();
|
||||
errors.textContent = "Accept Terms";
|
||||
errors.hidden = false;
|
||||
console.log("Terms");
|
||||
return ;
|
||||
}
|
||||
|
||||
document.getElementById('pay-now').disabled = true;
|
||||
document.querySelector('#pay-now > svg').classList.remove('hidden');
|
||||
document.querySelector('#pay-now > span').classList.add('hidden');
|
||||
|
||||
this.stripe.confirmAuBecsDebitPayment(
|
||||
document.querySelector('meta[name=pi-client-secret').content,
|
||||
{
|
||||
payment_method: {
|
||||
au_becs_debit: this.auBankAccount,
|
||||
billing_details: {
|
||||
name: document.getElementById("becs-name").value,
|
||||
email: document.getElementById("becs-email-address").value,
|
||||
},
|
||||
},
|
||||
}
|
||||
).then((result) => {
|
||||
if (result.error) {
|
||||
return this.handleFailure(result.error.message);
|
||||
}
|
||||
|
||||
return this.handleSuccess(result);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
handleSuccess(result) {
|
||||
document.querySelector(
|
||||
'input[name="gateway_response"]'
|
||||
).value = JSON.stringify(result.paymentIntent);
|
||||
|
||||
document.getElementById('server-response').submit();
|
||||
}
|
||||
|
||||
handleFailure(message) {
|
||||
let errors = document.getElementById('errors');
|
||||
|
||||
errors.textContent = '';
|
||||
errors.textContent = message;
|
||||
errors.hidden = false;
|
||||
|
||||
document.getElementById('pay-now').disabled = false;
|
||||
document.querySelector('#pay-now > svg').classList.add('hidden');
|
||||
document.querySelector('#pay-now > span').classList.remove('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
const publishableKey = document.querySelector(
|
||||
'meta[name="stripe-publishable-key"]'
|
||||
)?.content ?? '';
|
||||
|
||||
const stripeConnect =
|
||||
document.querySelector('meta[name="stripe-account-id"]')?.content ?? '';
|
||||
|
||||
new ProcessBECS(publishableKey, stripeConnect).setupStripe().handle();
|
Loading…
x
Reference in New Issue
Block a user