/** * implementation de la simulation en mode full_ws * @author zbajaja */ // variable globale var B2B = "" var PRODUCTID = ""; var AMOUNT = ""; var BUSINESSDATE = ""; var REFMERCHANT= ""; var REFEXTERNE = ""; var LOGIN = "login"; var PASSWORD = "password"; var ORGANIZATION = "organization"; // implementation du service dosimulate(...) function dosimulate(b2b_code,dateb,amount,merchant_ref,product_id, callBack){ B2B = b2b_code; PRODUCTID = product_id; AMOUNT = amount; BUSINESSDATE = convertDate(dateb); REFMERCHANT= merchant_ref; var WS_URL = repo +"/subscription-ws/GetSimulationInfos"; console.log("soap call "); jQuery.support.cors = true; // Appel web service en mode asychnrone $.ajax({ type: "POST", headers: { 'Content-Type': "text/xml; charset=UTF-8" }, url: WS_URL, data: getSoapRequest(), dataType: "xml", success: function(data, status, req, xml, xmlHttpRequest, responseXML) { try{ var json = xml2json(req.responseXML.getElementsByTagName("simulationInfosOut")[0]); var format = JSON.stringify(json, null, 2); console.log(format); return callBack(format) ; } catch (error) { console.log("XML response error : "); console.log(req.responseXML); return callBack(req.responseXML) ; } }, error: function (xhr, status, error) { console.log("XML response error : "); console.log(xhr.responseXML); return callBack(xhr.responseXML) ; } }); } ; // Construction envloppe SOAP function getSoapRequest() { var req = '' + ' ' + "" + "" + ""+ ""+ ""+ "" + LOGIN + "" + "" + PASSWORD + "" + "" + "" + "" + B2B + "" + "" + ORGANIZATION + "" + "" + ""+ ""+ ""+ ""+ B2B +""+ ""+BUSINESSDATE+""+ ""+ AMOUNT +""+ ""+ PRODUCTID +""+ ""+ REFMERCHANT +""+ ""+ ""+ ""+ ""+ ""; console.log(req); return req; } ; // implementation du service dosimulate(...) function dosimulate_ext_ref(b2b_code,dateb,amount,merchant_ext_ref,product_id, callBack){ B2B = b2b_code; PRODUCTID = product_id; AMOUNT = amount; BUSINESSDATE = convertDate(dateb); REFEXTERNE= merchant_ext_ref; var WS_URL = repo +"/subscription-ws/GetSimulationInfos"; console.log("soap call "); jQuery.support.cors = true; // Appel web service en mode asychnrone $.ajax({ type: "POST", headers: { 'Content-Type': "text/xml; charset=UTF-8" }, url: WS_URL, data: getSoapRequestExtRef(), dataType: "xml", success: function(data, status, req, xml, xmlHttpRequest, responseXML) { try{ var json = xml2json(req.responseXML.getElementsByTagName("simulationInfosOut")[0]); var format = JSON.stringify(json, null, 2); console.log(format); return callBack(format) ; } catch (error) { console.log("XML response error : "); console.log(req.responseXML); return callBack(req.responseXML) ; } }, error: function (xhr, status, error) { console.log("XML response error : "); console.log(xhr.responseXML); return callBack(xhr.responseXML) ; } }); } ; // Construction envloppe SOAP function getSoapRequestExtRef() { var req = '' + ' ' + "" + "" + ""+ ""+ ""+ "" + LOGIN + "" + "" + PASSWORD + "" + "" + "" + "" + B2B + "" + "" + ORGANIZATION + "" + "" + ""+ ""+ ""+ ""+ B2B +""+ ""+BUSINESSDATE+""+ ""+ AMOUNT +""+ ""+ PRODUCTID +""+ ""+ REFEXTERNE +""+ ""+ ""+ ""+ ""+ ""; console.log(req); return req; } ; // Convertion XML to JSON function xml2json(xml) { //try { var obj = {}; if (xml.firstElementChild !== null) { for (var i = 0; i < xml.childNodes.length; i++) { var item = xml.childNodes[i]; var nodeName = item.nodeName; if (typeof (obj[nodeName]) == "undefined") { obj[nodeName] = xml2json(item); } else { if (typeof (obj[nodeName].push) == "undefined") { var old = obj[nodeName]; obj[nodeName] = []; obj[nodeName].push(old); } obj[nodeName].push(xml2json(item)); } } } else { obj = xml.textContent; } return obj; //} catch (e) { // console.log(e.message); //} } ; // Convert date format (in : jj/mm/aaaa, out: yyyy-MM-dd) function convertDate(p_date){ var parts = p_date.split('/'); if(parts == null || parts.length != 3 || parts[0] == "jj"){ return p_date; } return parts[2]+"-"+parts[1]+"-"+parts[0] } ;