Skip to content

Instantly share code, notes, and snippets.

@olanipekunife
Last active June 22, 2022 10:14
Show Gist options
  • Save olanipekunife/02169cf0f198c184981416a68c9cfc87 to your computer and use it in GitHub Desktop.
Save olanipekunife/02169cf0f198c184981416a68c9cfc87 to your computer and use it in GitHub Desktop.
Credit Bureau Soap Impl
const soap = require("soap");
const host =
"https://webserver.creditreferencenigeria.net/crcweb/liverequestinvoker.asmx?WSDL";
const options = {
ignoredNamespaces: {
namespaces: [],
override: true,
},
};
const args = {
strRequest: "",
strUserID: "",
strPassword: "",
};
const CRC = (bvn) =>
new Promise((resolve, reject) => {
const data =
'<REQUEST REQUEST_ID="1"><REQUEST_PARAMETERS><REPORT_PARAMETERS RESPONSE_TYPE="2" SUBJECT_TYPE="1" REPORT_ID="6110"/> <INQUIRY_REASON CODE="1"/><APPLICATION CURRENCY="NGN" AMOUNT="0" NUMBER="0" PRODUCT="017"/></REQUEST_PARAMETERS><SEARCH_PARAMETERS SEARCH-TYPE="4"><BVN_NO>' +
bvn +
"</BVN_NO></SEARCH_PARAMETERS></REQUEST>";
soap.createClient(host, options, function (err, soapClient) {
if (err) {
return reject(err);
}
args.strRequest = data;
soapClient.PostRequest(args, function (err, soapResp) {
if (err) {
return reject(err);
}
resolve(soapResp);
});
});
});
module.exports = CRC;
const soap = require("soap");
const host =
"https://uat.firstcentralcreditbureau.com/FirstCentralNigeriaWebService_JSON3/FirstCentralNigeriaWebService.asmx?WSDL";
const options = {
ignoredNamespaces: {
namespaces: [],
override: true,
},
connection: "keep-alive",
};
function createSoapClient() {
return new Promise((resolve, reject) => {
soap.createClient(host, options, (err, client) => {
if (err) {
return reject(err);
}
resolve(client);
});
});
}
const XDS = () =>
new Promise(async (resolve, reject) => {
try {
const soapClient = await createSoapClient();
soapClient.LoginJSON(
{
UserName: "",
Password: "",
},
(err, loginRes) => {
if (err) {
return reject(err);
}
soapClient.IsTicketValidJSON(
{
FirstCentralNigeriaWebServiceTicket: loginRes.LoginJSONResult,
},
(err, resp) => {
if (err) {
return reject(err);
}
console.log(resp);
resolve(loginRes);
}
);
}
);
} catch (error) {
reject(error);
}
});
(async () => {
try {
const data = await XDS();
console.log(data);
} catch (error) {
console.log(error);
}
})();
module.exports = XDS;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment