function getPaymentPage(paymentMethod) { var check3ds = getUrlParameter('3ds'); var url = 'route.php?r=getPaymentPage'; if(check3ds == 'no') { url = url+'&3ds=no'; } $.ajax({ url: url, type: 'post', dataType: 'json', data: {paymentMethod: paymentMethod}, success: function (response) { if (response.form) { $('body').append(response.form); if(response.paymentMethod == 'cc_merchantpage' || response.paymentMethod == 'installments_merchantpage') { showMerchantPage(response.url); } else if(response.paymentMethod == 'cc_merchantpage2') { var expDate = $('#payfort_fort_mp2_expiry_year').val()+''+$('#payfort_fort_mp2_expiry_month').val(); var mp2_params = {}; mp2_params.card_holder_name = $('#payfort_fort_mp2_card_holder_name').val(); mp2_params.card_number = $('#payfort_fort_mp2_card_number').val(); mp2_params.expiry_date = expDate; mp2_params.card_security_code = $('#payfort_fort_mp2_cvv').val(); $.each(mp2_params, function(k, v){ $('').attr({ type: 'hidden', id: k, name: k, value: v }).appendTo('#payfort_payment_form'); }); $('#payfort_payment_form input[type=submit]').click(); } else{ $('#payfort_payment_form input[type=submit]').click(); } } } }); } function showMerchantPage(merchantPageUrl) { if($("#payfort_merchant_page").size()) { $( "#payfort_merchant_page" ).remove(); } $('').appendTo('#pf_iframe_content'); $( "#payfort_merchant_page" ).attr("src", merchantPageUrl); $( "#payfort_payment_form" ).attr("action", merchantPageUrl); $( "#payfort_payment_form" ).attr("target","payfort_merchant_page"); $( "#payfort_payment_form" ).attr("method","POST"); $('#payfort_payment_form input[type=submit]').click(); //$( "#payfort_payment_form" ).submit(); $( "#div-pf-iframe" ).show(); } var getUrlParameter = function getUrlParameter(sParam) { var sPageURL = decodeURIComponent(window.location.search.substring(1)), sURLVariables = sPageURL.split('&'), sParameterName, i; for (i = 0; i < sURLVariables.length; i++) { sParameterName = sURLVariables[i].split('='); if (sParameterName[0] === sParam) { return sParameterName[1] === undefined ? true : sParameterName[1]; } } }; var payfortFort = (function () { return { validateCreditCard: function(element) { var isValid = false; var eleVal = $(element).val(); eleVal = this.trimString(element.val()); eleVal = eleVal.replace(/\s+/g, ''); $(element).val(eleVal); $(element).validateCreditCard(function(result) { /*$('.log').html('Card type: ' + (result.card_type == null ? '-' : result.card_type.name) + '
Valid: ' + result.valid + '
Length valid: ' + result.length_valid + '
Luhn valid: ' + result.luhn_valid);*/ isValid = result.valid; }); return isValid; }, validateCardHolderName: function(element) { $(element).val(this.trimString(element.val())); var cardHolderName = $(element).val(); if(cardHolderName.length > 50) { return false; } return true; }, validateCvc: function(element) { $(element).val(this.trimString(element.val())); var cvc = $(element).val(); if(cvc.length > 4 || cvc.length == 0) { return false; } if(!this.isPosInteger(cvc)) { return false; } return true; }, isDefined: function(variable) { if (typeof (variable) === 'undefined' || typeof (variable) === null) { return false; } return true; }, trimString: function(str){ return str.trim(); }, isPosInteger: function(data) { var objRegExp = /(^\d*$)/; return objRegExp.test( data ); } }; })(); var payfortFortMerchantPage2 = (function () { return { validateCcForm: function () { this.hideError(); var isValid = payfortFort.validateCardHolderName($('#payfort_fort_mp2_card_holder_name')); if(!isValid) { this.showError('Invalid Card Holder Name'); return false; } isValid = payfortFort.validateCreditCard($('#payfort_fort_mp2_card_number')); if(!isValid) { this.showError('Invalid Credit Card Number'); return false; } isValid = payfortFort.validateCvc($('#payfort_fort_mp2_cvv')); if(!isValid) { this.showError('Invalid Card CVV'); return false; } return true; }, showError: function(msg) { alert(msg); }, hideError: function() { return; } }; })();