diff --git a/partner-trugee.js b/partner-trugee.js index 8986f14..316da15 100644 --- a/partner-trugee.js +++ b/partner-trugee.js @@ -109,8 +109,15 @@ function directResponseHandler(body, request_id) { var response_code = '68'; //var request_id = result.pulsamatic.partner_trxid[0].trim(); - var message = result.pulsamatic.message[0].trim(); - var status = result.pulsamatic.result[0].trim(); + var message = getMessageFromXmlResponse(result); + if (!message) { + message = body; + } + + var status = getStatusFromXmlResponse(result); + if (!status) { + status = 'UNKNOWN'; + } if (status === 'failed') { response_code = '40'; @@ -126,6 +133,29 @@ function directResponseHandler(body, request_id) { }); } +function getMessageFromXmlResponse(response) { + var message = null; + try { + message = response.pulsamatic.message[0].trim(); + } + catch(e) { + logger.warn('Undefined message from response', {response: response}); + } + return message; +} + +function getStatusFromXmlResponse(response) { + var status = null; + try { + status = response.pulsamatic.result[0].trim(); + } + catch(e) { + logger.warn('Undefined status from response', {response: response}); + } + return message; +} + + function responseCodeFromMessage(message) { if (message.indexOf('Jenis produk tidak cocok') >= 0) { return '14';