diff --git a/lib/partner.js b/lib/partner.js index eb44b1f..4bb49ff 100644 --- a/lib/partner.js +++ b/lib/partner.js @@ -17,11 +17,17 @@ const resendDelay = require('komodo-sdk/gateway/resend-delay'); const st24 = require('./st24'); +if (config.partner.use_sslv3) { + https.globalAgent.options.secureProtocol = 'SSLv3_method'; +} + const partnerRc = fs.existsSync(__dirname + '/../rc-local.json') ? require('../rc-local.json') : require('./partner-rc.json'); logger.verbose('Partner RC dictionary loaded', {partner_rc: partnerRc}); -if (config.partner.use_sslv3) { - https.globalAgent.options.secureProtocol = 'SSLv3_method'; +const RESPONSECODE_TAG = config.responsecode_tag ? config.responsecode_tag : 'RESPONSECODE'; + +function komodoRc(rc) { + return (config.partner.override_rc ? config.partner.override_rc[rc] : null) || partnerRc[value[rc]] || '40'; } function createXmlRpcClient(endpoint) { @@ -89,11 +95,9 @@ function _topUpRequest(task, isAdvice) { logger.info('Got XMLRPC response from partner for', {method: xmlrpcMethod, trx_id: task.trx_id, destination: task.destination, response: value}); matrix.last_topupRequest_ack = value; - const RESPONSECODE_TAG = config.responsecode_tag ? config.responsecode_tag : 'RESPONSECODE'; - report({ trx_id: task.trx_id, - rc: partnerRc[value[RESPONSECODE_TAG]] || '40', + rc: komodoRc(value[RESPONSECODE_TAG]) || '40', message: stringify(value), sn: (value.SN || '').replace(/;$/, '') || st24.extractSnFromMessage(value.MESSAGE, config.sn_pattern), amount: value.PRICE || st24.extractPriceFromMsg(value.MESSAGE, config.amount_pattern), @@ -141,7 +145,7 @@ function _topUpInquiry(task) { report({ trx_id: task.trx_id, - rc: partnerRc[value.RESPONSECODE] || '40', + rc: rc: komodoRc(value[RESPONSECODE_TAG]) || '40', message: stringify(value), sn: (value.SN || '').replace(/;$/, '') || st24.extractSnFromMessage(value.MESSAGE, config.sn_pattern), amount: value.PRICE || st24.extractPriceFromMsg(value.MESSAGE, config.amount_pattern),