· 6 years ago · Oct 22, 2019, 09:26 AM
1<script src="https://js.stripe.com/v3/"></script>
2<script>
3 // Stripe API Key
4var stripe = Stripe('pk_test_kM2nnXlTXWJdQUUNVhieZzK2');
5var elements = stripe.elements();
6// Custom Styling
7var style = {
8 base: {
9 color: '#32325d',
10 lineHeight: '24px',
11 fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
12 fontSmoothing: 'antialiased',
13 fontSize: '16px',
14 '::placeholder': {
15 color: '#aab7c4'
16 }
17 },
18 invalid: {
19 color: '#fa755a',
20 iconColor: '#fa755a'
21 }
22};
23// Create an instance of the card Element
24var card = elements.create('card', {hidePostalCode: true, style: style});
25// Add an instance of the card Element into the `card-element` <div>
26card.mount('#card-element');
27// Handle real-time validation errors from the card Element.
28card.addEventListener('change', function(event) {
29 var displayError = document.getElementById('card-errors');
30if (event.error) {
31 displayError.textContent = event.error.message;
32 } else {
33 displayError.textContent = '';
34 }
35});
36// Handle form submission
37var form = document.getElementById('payment-form');
38form.addEventListener('submit', function(event) {
39 event.preventDefault();
40stripe.createToken(card).then(function(result) {
41 if (result.error) {
42 // Inform the user if there was an error
43 var errorElement = document.getElementById('card-errors');
44 errorElement.textContent = result.error.message;
45 } else {
46 stripeTokenHandler(result.token);
47 }
48 });
49});
50// Send Stripe Token to Server
51function stripeTokenHandler(token) {
52 // Insert the token ID into the form so it gets submitted to the server
53 var form = document.getElementById('payment-form');
54// Add Stripe Token to hidden input
55 var hiddenInput = document.createElement('input');
56 hiddenInput.setAttribute('type', 'hidden');
57 hiddenInput.setAttribute('name', 'stripeToken');
58 hiddenInput.setAttribute('value', token.id);
59 form.appendChild(hiddenInput);
60// Submit form
61 form.submit();
62}
63</script>