luyadev/luya-module-payment

View on GitHub
src/frontend/stripe/dist/stripe.js

Summary

Maintainability
A
0 mins
Test Coverage
var helper={addClass:function(e,t){e.classList?e.classList.add(t):hasClass(e,t)||(e.className+=" "+t)},removeClass:function(e,t){if(e.classList)e.classList.remove(t);else if(hasClass(e,t)){var n=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className=e.className.replace(n," ")}},csrfToken:function(){return document.head.querySelector("[name=csrf-token]").content}},payment={createPaymentMethodHandler:function(e){fetch(confirmUrl,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":helper.csrfToken()},body:JSON.stringify({payment_method_id:e.paymentMethod.id})}).then(function(e){e.json().then(function(e){payment.serverResponseHandler(e)})})},serverResponseHandler:function(e){e.error?payment.invokeError(e):e.requires_action?payment.takeActionHandler(e):payment.invokeSuccess(e)},takeActionHandler:function(e){stripe.handleCardAction(e.payment_intent_client_secret).then(function(e){e.error?payment.invokeError(e):fetch(confirmUrl,{method:"POST",headers:{"Content-Type":"application/json","X-CSRF-Token":helper.csrfToken()},body:JSON.stringify({payment_intent_id:e.paymentIntent.id})}).then(function(e){return e.json()}).then(payment.serverResponseHandler)})},invokeError:function(e){document.getElementById("payment-errors").textContent=e.error.message,helper.removeClass(submit,"submit-is-loading"),submit.disabled=!1},invokeSuccess:function(e){var t=document.getElementById("payment-form"),n=document.createElement("input");n.setAttribute("type","hidden"),n.setAttribute("name","intentId"),n.setAttribute("value",e.id),t.appendChild(n),t.submit()}},stripe=Stripe("<?= $publishableKey; ?>"),elements=stripe.elements(),submit=document.getElementById("payment-button-submit"),form=document.getElementById("payment-form"),card=elements.create("card",{style:{base:{color:"#3e4e59",lineHeight:"18px",fontFamily:'"Helvetica Neue", Helvetica, sans-serif',fontSmoothing:"antialiased",fontSize:"16px","::placeholder":{color:"#aab7c4"}},invalid:{color:"#fa755a",iconColor:"#fa755a"}}});card.mount("#payment-stripe"),card.addEventListener("change",function(e){var t=document.getElementById("payment-errors");e.error?t.textContent=e.error.message:t.textContent="",e.complete?submit.disabled=!1:submit.disabled=!0}),form.addEventListener("submit",function(e){e.preventDefault(),helper.addClass(submit,"submit-is-loading"),submit.disabled=!0,stripe.createPaymentMethod("card",card).then(function(e){e.error?payment.invokeError(e):payment.createPaymentMethodHandler(e)})});