diff --git a/partner-bayarkilat.js b/partner-bayarkilat.js index 9642834..3acfbb3 100644 --- a/partner-bayarkilat.js +++ b/partner-bayarkilat.js @@ -78,12 +78,31 @@ function topupRequest(task, retry) { }); } +function getSn(response) { + try { + var sn = response.xml.ket1[0]; + return sn; + } + catch (err) { + return; + } +} + function parseResponse(body, task) { xml2jsParser(body, function(err, response) { if (err) { logger.warn('Error parsing XML', {error: err, task: task, responseBody: body}); var message = 'Error parsing XML. ' + err + '. ' + body; + + var _response = { + raw: body, + parsed: { + MESSAGE: message + } + } + aaa.pushResponseToMongoDb(task, _response, '68'); + callbackReport(task.requestId, '68', message); return; } @@ -101,6 +120,16 @@ function parseResponse(body, task) { } catch(errGetParam) { logger.warn('Exception saat parsing hasil', {error: errGetParam, task: task, responseBody: body}); + + var _response = { + raw: body, + parsed: { + MESSAGE: 'Exception saat parsing hasil. ' + errGetParam, + xml: response.xml + } + } + aaa.pushResponseToMongoDb(task, _response, '68'); + callbackReport(task.requestId, '68', 'Exception saat parsing hasil. ' + errGetParam); return; } @@ -121,10 +150,28 @@ function parseResponse(body, task) { st24message = responseCode + ' ' + st24message; } + if (st24rc == '00') { + var sn = getSn(response); + + if (sn) { + st24message = 'SN=' + sn + ';' + st24message + '. SN=' + sn; + } + } + if (saldo) { st24message = st24message + '. Saldo ' + saldo; } + var _response = { + raw: body, + parsed: { + MESSAGE: st24message, + xml: response.xml + } + } + + aaa.pushResponseToMongoDb(task, _response, st24rc); + callbackReport(task.requestId, st24rc, st24message);