Commit cd01e19ddf19b739d41884b6cc19310f2b435594
1 parent
5229b8c18d
Exists in
master
Debug on rc local reverse report
Showing 1 changed file with 6 additions and 0 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 | if (localRc) { | ||
15 | logger.info('REVERSE-REPORT: Found rc-local.json', { | ||
16 | useRcLocalOnReverseReport: config.partner.reverse_report_using_rc_local, | ||
17 | localRc, | ||
18 | }); | ||
19 | } | ||
14 | 20 | ||
15 | function processPartnerReport(qs) { | 21 | function processPartnerReport(qs) { |
16 | let rc = '68'; | 22 | let rc = '68'; |
17 | 23 | ||
18 | if (config.partner.reverse_report_using_rc_local && localRc && qs.statuscode) { | 24 | if (config.partner.reverse_report_using_rc_local && localRc && qs.statuscode) { |
19 | rc = localRc[qs.statuscode] || '40'; | 25 | rc = localRc[qs.statuscode] || '40'; |
20 | } else if (qs.statuscode === '1') { | 26 | } else if (qs.statuscode === '1') { |
21 | rc = '00'; | 27 | rc = '00'; |
22 | } else if (qs.statuscode === '2') { | 28 | } else if (qs.statuscode === '2') { |
23 | rc = '40'; | 29 | rc = '40'; |
24 | } | 30 | } |
25 | 31 | ||
26 | if (rc === '40') { | 32 | if (rc === '40') { |
27 | rc = irs.getRcFromMessage(qs.msg) || '40'; | 33 | rc = irs.getRcFromMessage(qs.msg) || '40'; |
28 | } | 34 | } |
29 | 35 | ||
30 | let amount = null; | 36 | let amount = null; |
31 | if (rc === '00') { | 37 | if (rc === '00') { |
32 | amount = Number(qs.hrg); | 38 | amount = Number(qs.hrg); |
33 | if (!amount) { | 39 | if (!amount) { |
34 | amount = irs.getPriceFromMessage(qs.msg, config.partner.price_pattern); | 40 | amount = irs.getPriceFromMessage(qs.msg, config.partner.price_pattern); |
35 | } | 41 | } |
36 | } | 42 | } |
37 | 43 | ||
38 | partner.report({ | 44 | partner.report({ |
39 | trx_id: qs.clientid, | 45 | trx_id: qs.clientid, |
40 | rc: rc, | 46 | rc: rc, |
41 | message: 'REVERSE-REPORT: ' + stringify(qs), | 47 | message: 'REVERSE-REPORT: ' + stringify(qs), |
42 | raw: stringify(qs), | 48 | raw: stringify(qs), |
43 | sn: (qs.sn ? qs.sn : null) || irs.getSnFromMessage(qs.msg, config.partner.sn_pattern) || null, | 49 | sn: (qs.sn ? qs.sn : null) || irs.getSnFromMessage(qs.msg, config.partner.sn_pattern) || null, |
44 | amount: amount, | 50 | amount: amount, |
45 | balance: (rc === '00') ? irs.getBalanceFromMessage(qs.msg, config.partner.balance_pattern) : null, | 51 | balance: (rc === '00') ? irs.getBalanceFromMessage(qs.msg, config.partner.balance_pattern) : null, |
46 | misc: {} | 52 | misc: {} |
47 | }) | 53 | }) |
48 | } | 54 | } |
49 | 55 | ||
50 | function create() { | 56 | function create() { |
51 | http.createServer(function (req, res) { | 57 | http.createServer(function (req, res) { |
52 | res.writeHead(200, {'Content-Type': 'text/html'}); | 58 | res.writeHead(200, {'Content-Type': 'text/html'}); |
53 | const qs = url.parse(req.url, true).query; | 59 | const qs = url.parse(req.url, true).query; |
54 | res.end('OK'); | 60 | res.end('OK'); |
55 | 61 | ||
56 | const remote_ip = req.connection ? req.connection.remoteAddress : null; | 62 | 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}); | 63 | logger.verbose('REVERSE-REPORT: got report from partner', {url: req.url, remote_ip: remote_ip}); |
58 | 64 | ||
59 | processPartnerReport(qs); | 65 | processPartnerReport(qs); |
60 | }).listen(config.reverse_report_port); | 66 | }).listen(config.reverse_report_port); |
61 | 67 | ||
62 | logger.info('REVERSE-REPORT: listen on port ' + config.reverse_report_port); | 68 | logger.info('REVERSE-REPORT: listen on port ' + config.reverse_report_port); |
63 | } | 69 | } |
64 | 70 | ||
65 | config.reverse_report_port && create(); | 71 | config.reverse_report_port && create(); |
66 | 72 |