$(function(){ /* json object contains 1) payOptType - Will contain payment options allocated to the merchant. Options may include Credit Card, Net Banking, Debit Card, Cash Cards or Mobile Payments. 2) cardType - Will contain card type allocated to the merchant. Options may include Credit Card, Net Banking, Debit Card, Cash Cards or Mobile Payments. 3) cardName - Will contain name of card. E.g. Visa, MasterCard, American Express or and bank name in case of Net banking. 4) status - Will help in identifying the status of the payment mode. Options may include Active or Down. 5) dataAcceptedAt - It tell data accept at CCAvenue or Service provider 6)error - This parameter will enable you to troubleshoot any configuration related issues. It will provide error description. */ var jsonData; var access_code="" // shared by CCAVENUE var amount="6000.00"; var currency="INR"; $.ajax({ url:'https://secure.ccavenue.com/transaction/transaction.do?command=getJsonData&access_code='+access_code+'¤cy='+currency+'&amount='+amount, dataType: 'jsonp', jsonp: false, jsonpCallback: 'processData', success: function (data) { jsonData = data; // processData method for reference processData(data); // get Promotion details $.each(jsonData, function(index,value) { if(value.Promotions != undefined && value.Promotions !=null){ var promotionsArray = $.parseJSON(value.Promotions); $.each(promotionsArray, function() { console.log(this['promoId'] +" "+this['promoCardName']); var promotions= ""; $("#promo_code").find("option:last").after(promotions); }); } }); }, error: function(xhr, textStatus, errorThrown) { alert('An error occurred! ' + ( errorThrown ? errorThrown :xhr.status )); //console.log("Error occured"); } }); $(".payOption").click(function(){ var paymentOption=""; var cardArray=""; var payThrough,emiPlanTr; var emiBanksArray,emiPlansArray; paymentOption = $(this).val(); $("#card_type").val(paymentOption.replace("OPT","")); $("#card_name").children().remove(); // remove old card names from old one $("#card_name").append(""); $("#emi_div").hide(); //console.log(jsonData); $.each(jsonData, function(index,value) { //console.log(value); if(paymentOption !="OPTEMI"){ if(value.payOpt==paymentOption){ cardArray = $.parseJSON(value[paymentOption]); $.each(cardArray, function() { $("#card_name").find("option:last").after(""); }); } } if(paymentOption =="OPTEMI"){ if(value.payOpt=="OPTEMI"){ $("#emi_div").show(); $("#card_type").val("CRDC"); $("#data_accept").val("Y"); $("#emi_plan_id").val(""); $("#emi_tenure_id").val(""); $("span.emi_fees").hide(); $("#emi_banks").children().remove(); $("#emi_banks").append(""); $("#emi_tbl").children().remove(); emiBanksArray = $.parseJSON(value.EmiBanks); emiPlansArray = $.parseJSON(value.EmiPlans); $.each(emiBanksArray, function() { payThrough = ""; $("#emi_banks").append(payThrough); }); emiPlanTr="
"+ "Processing fee will be charged only on the first EMI."+ ""; $("#processing_fee").children().remove(); $("#processing_fee").append(processingFee); // If processing fee is 0 then hiding emi_fee span if($("#processingFee").text()==0){ $(".emi_fees").hide(); } }); $("#card_number").focusout(function(){ emi_banks(select box) option class attribute contains two fields either allcards or bin no supported by that emi if($('input[name="payment_option"]:checked').val() == "OPTEMI"){ if(!($("#emi_banks option:selected").hasClass("allcards"))){ if(!$('#emi_banks option:selected').hasClass($(this).val().substring(0,6))){ alert("Selected EMI is not available for entered credit card."); } } } }); // Emi section end // below code for reference function processData(data){ var paymentOptions = []; var creditCards = []; var debitCards = []; var netBanks = []; var cashCards = []; var mobilePayments=[]; $.each(data, function() { // this.error shows if any error console.log(this.error); paymentOptions.push(this.payOpt); switch(this.payOpt){ case 'OPTCRDC': var jsonData = this.OPTCRDC; var obj = $.parseJSON(jsonData); $.each(obj, function() { creditCards.push(this['cardName']); }); break; case 'OPTDBCRD': var jsonData = this.OPTDBCRD; var obj = $.parseJSON(jsonData); $.each(obj, function() { debitCards.push(this['cardName']); }); break; case 'OPTNBK': var jsonData = this.OPTNBK; var obj = $.parseJSON(jsonData); $.each(obj, function() { netBanks.push(this['cardName']); }); break; case 'OPTCASHC': var jsonData = this.OPTCASHC; var obj = $.parseJSON(jsonData); $.each(obj, function() { cashCards.push(this['cardName']); }); break; case 'OPTMOBP': var jsonData = this.OPTMOBP; var obj = $.parseJSON(jsonData); $.each(obj, function() { mobilePayments.push(this['cardName']); }); } }); //console.log(creditCards); // console.log(debitCards); // console.log(netBanks); // console.log(cashCards); // console.log(mobilePayments); } });