diff --git a/Stripe/payments/token.js b/Stripe/payments/token.js new file mode 100644 index 0000000..abe5544 --- /dev/null +++ b/Stripe/payments/token.js @@ -0,0 +1,36 @@ +/* A JavaScript to create the token on the frontend when the form is submitted: */ + +var stripe = Stripe('your_public_key'); // Public Key +var elements = stripe.elements(); +var card = elements.create('card'); +card.mount('#card-element'); + +var form = document.getElementById('payment-form'); + +form.addEventListener('submit', function(event) { + event.preventDefault(); + + stripe.createToken(card).then(function(result) { + if (result.error) { + // Show error in #card-errors + var errorElement = document.getElementById('card-errors'); + errorElement.textContent = result.error.message; + } else { + // Send token to server + stripeTokenHandler(result.token); + } + }); +}); + +function stripeTokenHandler(token) { + var form = document.getElementById('payment-form'); + + var hiddenInput = document.createElement('input'); + hiddenInput.setAttribute('type', 'hidden'); + hiddenInput.setAttribute('name', 'stripeToken'); + hiddenInput.setAttribute('value', token.id); + form.appendChild(hiddenInput); + + // Submit the form + form.submit(); +}