Implementing new credit card js code
This commit is contained in:
		
					parent
					
						
							
								623c7e0d99
							
						
					
				
			
			
				commit
				
					
						481dadcfe5
					
				
			
		
					 1 changed files with 114 additions and 6 deletions
				
			
		| 
						 | 
					@ -1,3 +1,28 @@
 | 
				
			||||||
 | 
					var cardBrandToPfClass = {
 | 
				
			||||||
 | 
					   'visa': 'pf-visa',
 | 
				
			||||||
 | 
					  'mastercard': 'pf-mastercard',
 | 
				
			||||||
 | 
					  'amex': 'pf-american-express',
 | 
				
			||||||
 | 
					  'discover': 'pf-discover',
 | 
				
			||||||
 | 
					  'diners': 'pf-diners',
 | 
				
			||||||
 | 
					  'jcb': 'pf-jcb',
 | 
				
			||||||
 | 
					  'unknown': 'pf-credit-card',
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function setBrandIcon(brand) {
 | 
				
			||||||
 | 
					    var brandIconElement = document.getElementById('brand-icon');
 | 
				
			||||||
 | 
					    var pfClass = 'pf-credit-card';
 | 
				
			||||||
 | 
					    if (brand in cardBrandToPfClass) {
 | 
				
			||||||
 | 
					        pfClass = cardBrandToPfClass[brand];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    for (var i = brandIconElement.classList.length - 1; i >= 0; i--) {
 | 
				
			||||||
 | 
					         brandIconElement.classList.remove(brandIconElement.classList[i]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    brandIconElement.classList.add('pf');
 | 
				
			||||||
 | 
					    brandIconElement.classList.add(pfClass);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$( document ).ready(function() {
 | 
					$( document ).ready(function() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,8 +57,91 @@ $( document ).ready(function() {
 | 
				
			||||||
    if (!hasCreditcard){
 | 
					    if (!hasCreditcard){
 | 
				
			||||||
        var stripe = Stripe(window.stripeKey);
 | 
					        var stripe = Stripe(window.stripeKey);
 | 
				
			||||||
        var elements = stripe.elements({locale: window.current_lan});
 | 
					        var elements = stripe.elements({locale: window.current_lan});
 | 
				
			||||||
        var card = elements.create('card', options={hidePostalCode: true});
 | 
					        //var card = elements.create('card', options={hidePostalCode: true});
 | 
				
			||||||
        card.mount('#card-element');
 | 
					        //card.mount('#card-element');
 | 
				
			||||||
 | 
					        /* new card */
 | 
				
			||||||
 | 
					        var server_url = "https://datacenterlight.ch";
 | 
				
			||||||
 | 
					        var element_style = {
 | 
				
			||||||
 | 
					            fonts: [{
 | 
				
			||||||
 | 
					                    family: 'lato-light',
 | 
				
			||||||
 | 
					                    src: 'url(https://cdn.jsdelivr.net/font-lato/2.0/Lato/Lato-Light.woff) format("woff2")',
 | 
				
			||||||
 | 
					                }, {
 | 
				
			||||||
 | 
					                    family: 'lato-regular',
 | 
				
			||||||
 | 
										src: 'url(https://cdn.jsdelivr.net/font-lato/2.0/Lato/Lato-Regular.woff) format("woff2")',
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        }        
 | 
				
			||||||
 | 
					        var elements = stripe.elements(element_style);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        var style = {
 | 
				
			||||||
 | 
					          base: {
 | 
				
			||||||
 | 
					            iconColor: '#666EE8',
 | 
				
			||||||
 | 
					            color: '#31325F',
 | 
				
			||||||
 | 
					            lineHeight: '40px',
 | 
				
			||||||
 | 
					            fontWeight: 300,
 | 
				
			||||||
 | 
					            fontFamily: "'Lato', sans-serif",
 | 
				
			||||||
 | 
					            fontSize: '14px',
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					            '::placeholder': {
 | 
				
			||||||
 | 
					              color: '#333',
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					var credit_card_text_style = {
 | 
				
			||||||
 | 
					  base: {
 | 
				
			||||||
 | 
					    iconColor: '#666EE8',
 | 
				
			||||||
 | 
					    color: '#31325F',
 | 
				
			||||||
 | 
					    lineHeight: '40px',
 | 
				
			||||||
 | 
					    fontWeight: 300,
 | 
				
			||||||
 | 
					    fontFamily: "'lato-light', sans-serif",
 | 
				
			||||||
 | 
					    fontSize: '14px',
 | 
				
			||||||
 | 
					    '::placeholder': {
 | 
				
			||||||
 | 
					      color: '#777',
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					};        
 | 
				
			||||||
 | 
					var credit_card_cvv_style = {
 | 
				
			||||||
 | 
					  base: {
 | 
				
			||||||
 | 
					    iconColor: '#666EE8',
 | 
				
			||||||
 | 
					    color: '#31325F',
 | 
				
			||||||
 | 
					    lineHeight: '40px',
 | 
				
			||||||
 | 
					    fontWeight: 300,
 | 
				
			||||||
 | 
					    fontFamily: "'lato-regular', sans-serif",
 | 
				
			||||||
 | 
					    fontSize: '14px',
 | 
				
			||||||
 | 
					    '::placeholder': {
 | 
				
			||||||
 | 
					      color: '#555',
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					};        
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        var cardNumberElement = elements.create('cardNumber', {
 | 
				
			||||||
 | 
					          style: credit_card_text_style,
 | 
				
			||||||
 | 
					          placeholder : "____ ____ ____ ____",
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        cardNumberElement.mount('#card-number-element');
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        var cardExpiryElement = elements.create('cardExpiry', {
 | 
				
			||||||
 | 
					          style: credit_card_cvv_style
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        cardExpiryElement.mount('#card-expiry-element');
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        var cardCvcElement = elements.create('cardCvc', {
 | 
				
			||||||
 | 
					          style: credit_card_cvv_style
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        cardCvcElement.mount('#card-cvc-element');
 | 
				
			||||||
 | 
					        cardNumberElement.on('change', function(event) {
 | 
				
			||||||
 | 
					            // Switch brand logo
 | 
				
			||||||
 | 
					            if (event.brand) {
 | 
				
			||||||
 | 
					                setBrandIcon(event.brand);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            setOutcome(event);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        $('#payment-form').submit(function(e) {
 | 
				
			||||||
 | 
					            e.preventDefault();
 | 
				
			||||||
 | 
					            stripe.createToken(cardNumberElement).then(setOutcome);
 | 
				
			||||||
 | 
					       });
 | 
				
			||||||
 | 
					        /* new card end */
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    console.log("has creditcard", hasCreditcard);
 | 
					    console.log("has creditcard", hasCreditcard);
 | 
				
			||||||
    // hasCreditcard= true;
 | 
					    // hasCreditcard= true;
 | 
				
			||||||
| 
						 | 
					@ -53,8 +161,8 @@ $( document ).ready(function() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var $form = $('#payment-form');
 | 
					    //var $form = $('#payment-form');
 | 
				
			||||||
    $form.submit(payWithStripe);
 | 
					    //$form.submit(payWithStripe);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* If you're using Stripe for payments */
 | 
					    /* If you're using Stripe for payments */
 | 
				
			||||||
    function payWithStripe(e) {
 | 
					    function payWithStripe(e) {
 | 
				
			||||||
| 
						 | 
					@ -120,7 +228,7 @@ $( document ).ready(function() {
 | 
				
			||||||
      return this.optional(element) || /^[0-9]{2}$/.test(value);
 | 
					      return this.optional(element) || /^[0-9]{2}$/.test(value);
 | 
				
			||||||
    }, "Please specify a valid 2-digit year.");
 | 
					    }, "Please specify a valid 2-digit year.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    validator = $form.validate({
 | 
					    /*validator = $form.validate({
 | 
				
			||||||
        rules: {
 | 
					        rules: {
 | 
				
			||||||
            cardNumber: {
 | 
					            cardNumber: {
 | 
				
			||||||
                required: true,
 | 
					                required: true,
 | 
				
			||||||
| 
						 | 
					@ -149,7 +257,7 @@ $( document ).ready(function() {
 | 
				
			||||||
        errorPlacement: function(error, element) {
 | 
					        errorPlacement: function(error, element) {
 | 
				
			||||||
            $(element).closest('.form-group').append(error);
 | 
					            $(element).closest('.form-group').append(error);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    paymentFormReady = function() {
 | 
					    paymentFormReady = function() {
 | 
				
			||||||
        if ($form.find('[name=cardNumber]').hasClass("success") &&
 | 
					        if ($form.find('[name=cardNumber]').hasClass("success") &&
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue