Commit 4e6915c9b3fb3c20122997f372dae71d3253f775
1 parent
3e0e546fc0
Exists in
master
config.partner.reverse_report_irs_using_rc_local
Showing 1 changed file with 8 additions and 5 deletions Inline Diff
lib/irs/reverse-report.js
1 | "use strict"; | 1 | const fs = require('fs'); |
2 | |||
3 | const http = require('http'); | 2 | const http = require('http'); |
4 | const url = require('url'); | 3 | const url = require('url'); |
5 | 4 | ||
6 | const stringify = require("json-stringify-pretty-compact"); | 5 | const stringify = require("json-stringify-pretty-compact"); |
7 | 6 | ||
8 | const config = require('komodo-sdk/config'); | 7 | const config = require('komodo-sdk/config'); |
9 | const logger = require('komodo-sdk/logger'); | 8 | const logger = require('komodo-sdk/logger'); |
10 | 9 | ||
11 | const partner = require('../partner'); | 10 | const partner = require('../partner'); |
12 | const irs = require('komodo-gw-irs-lib'); | 11 | const irs = require('komodo-gw-irs-lib'); |
13 | 12 | ||
13 | const localRc = fs.existsSync(__dirname + '/../../rc-local.json') ? require('../../rc-local.json') : null; | ||
14 | |||
14 | function processPartnerReport(qs) { | 15 | function processPartnerReport(qs) { |
15 | let rc = '68'; | 16 | let rc = '68'; |
16 | if (qs.statuscode === '1') { | 17 | |
18 | if (config.partner.reverse_report_irs_using_rc_local && localRc && qs.statuscode) { | ||
19 | rc = localRc[qs.statuscode] || '40'; | ||
20 | } else if (qs.statuscode === '1') { | ||
17 | rc = '00'; | 21 | rc = '00'; |
18 | } | 22 | } else if (qs.statuscode === '2') { |
19 | else if (qs.statuscode === '2') { | ||
20 | rc = '40'; | 23 | rc = '40'; |
21 | } | 24 | } |
22 | 25 | ||
23 | if (rc === '40') { | 26 | if (rc === '40') { |
24 | rc = irs.getRcFromMessage(qs.msg) || '40'; | 27 | rc = irs.getRcFromMessage(qs.msg) || '40'; |
25 | } | 28 | } |
26 | 29 | ||
27 | let amount = null; | 30 | let amount = null; |
28 | if (rc === '00') { | 31 | if (rc === '00') { |
29 | amount = Number(qs.hrg); | 32 | amount = Number(qs.hrg); |
30 | if (!amount) { | 33 | if (!amount) { |
31 | amount = irs.getPriceFromMessage(qs.msg, config.partner.price_pattern); | 34 | amount = irs.getPriceFromMessage(qs.msg, config.partner.price_pattern); |
32 | } | 35 | } |
33 | } | 36 | } |
34 | 37 | ||
35 | partner.report({ | 38 | partner.report({ |
36 | trx_id: qs.clientid, | 39 | trx_id: qs.clientid, |
37 | rc: rc, | 40 | rc: rc, |
38 | message: 'REVERSE-REPORT: ' + stringify(qs), | 41 | message: 'REVERSE-REPORT: ' + stringify(qs), |
39 | raw: stringify(qs), | 42 | raw: stringify(qs), |
40 | sn: (qs.sn ? qs.sn : null) || irs.getSnFromMessage(qs.msg, config.partner.sn_pattern) || null, | 43 | sn: (qs.sn ? qs.sn : null) || irs.getSnFromMessage(qs.msg, config.partner.sn_pattern) || null, |
41 | amount: amount, | 44 | amount: amount, |
42 | balance: (rc === '00') ? irs.getBalanceFromMessage(qs.msg, config.partner.balance_pattern) : null, | 45 | balance: (rc === '00') ? irs.getBalanceFromMessage(qs.msg, config.partner.balance_pattern) : null, |
43 | misc: {} | 46 | misc: {} |
44 | }) | 47 | }) |
45 | } | 48 | } |
46 | 49 | ||
47 | function create() { | 50 | function create() { |
48 | http.createServer(function (req, res) { | 51 | http.createServer(function (req, res) { |
49 | res.writeHead(200, {'Content-Type': 'text/html'}); | 52 | res.writeHead(200, {'Content-Type': 'text/html'}); |
50 | const qs = url.parse(req.url, true).query; | 53 | const qs = url.parse(req.url, true).query; |
51 | res.end('OK'); | 54 | res.end('OK'); |
52 | 55 | ||
53 | const remote_ip = req.connection ? req.connection.remoteAddress : null; | 56 | const remote_ip = req.connection ? req.connection.remoteAddress : null; |
54 | logger.verbose('REVERSE-REPORT: got report from partner', {url: req.url, remote_ip: remote_ip}); | 57 | logger.verbose('REVERSE-REPORT: got report from partner', {url: req.url, remote_ip: remote_ip}); |
55 | 58 | ||
56 | processPartnerReport(qs); | 59 | processPartnerReport(qs); |
57 | }).listen(config.reverse_report_port); | 60 | }).listen(config.reverse_report_port); |
58 | 61 | ||
59 | logger.info('REVERSE-REPORT: listen on port ' + config.reverse_report_port); | 62 | logger.info('REVERSE-REPORT: listen on port ' + config.reverse_report_port); |
60 | } | 63 | } |
61 | 64 |