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