/**
* 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]
}
;