diff --git a/public/static/signup.js b/public/static/signup.js index 1555cbb..896fd1f 100644 --- a/public/static/signup.js +++ b/public/static/signup.js @@ -163,20 +163,41 @@ $("#registrationform").on("submit", function (event) { $("#savebutton").prop("disabled", true); $("#savebutton-text").addClass("d-none"); $("#savebutton-wait").removeClass("d-none"); + var stripe_finished = false; + var stripe_timeout = false; stripe.createToken(card).then(function (result) { if (result.error) { // Inform the customer that there was an error. + stripe_finished = true; + stripe_timeout = false; $("#card-errors").removeClass("d-none"); $("#card-errors").text(event.error.message); $("#savebutton").prop("disabled", false); $("#savebutton-text").removeClass("d-none"); $("#savebutton-wait").addClass("d-none"); } else { + stripe_finished = true; + if (stripe_timeout) { + stripe_timeout = false; + return; + } $("#stripe-token").val(result.token.id); console.log(result.token); document.getElementById('registrationform').submit(); } }); + // Something went wrong + setTimeout(function () { + if (!stripe_finished) { + stripe_timeout = true; + stripe_finished = true; + $("#card-errors").removeClass("d-none"); + $("#card-errors").text("Something went wrong. Your card was not charged. Please try again."); + $("#savebutton").prop("disabled", false); + $("#savebutton-text").removeClass("d-none"); + $("#savebutton-wait").addClass("d-none"); + } + }, 1000 * 60); } else { console.log("Submitting without card..."); document.getElementById('registrationform').submit();