Commit 000766ded5ffdf0108ce34ab5a411bbeb159834e

Authored by Adhidarma Hadiwinoto
1 parent bcefc9c286
Exists in master

Indikasi topUpReport message ke CORE

Showing 1 changed file with 3 additions and 1 deletions Inline Diff

lib/reverse-report.js
1 "use strict"; 1 "use strict";
2 2
3 const xmlrpc = require('xmlrpc'); 3 const xmlrpc = require('xmlrpc');
4 const stringify = require("json-stringify-pretty-compact");
4 5
5 const config = require('komodo-sdk/config'); 6 const config = require('komodo-sdk/config');
6 const logger = require('komodo-sdk/logger'); 7 const logger = require('komodo-sdk/logger');
7 const matrix = require('komodo-sdk/matrix'); 8 const matrix = require('komodo-sdk/matrix');
8 const pull = require('komodo-sdk/gateway/pull'); 9 const pull = require('komodo-sdk/gateway/pull');
9 10
10 const st24 = require('./st24'); 11 const st24 = require('./st24');
11 const partner = require('./partner'); 12 const partner = require('./partner');
12 const partnerRc = require('./partner-rc.json'); 13 const partnerRc = require('./partner-rc.json');
13 14
14 function create() { 15 function create() {
15 if (!config || !config.reverse_report_port) { 16 if (!config || !config.reverse_report_port) {
16 logger.info('Not creating reverse report server because of undefined config.reverse_report_port'); 17 logger.info('Not creating reverse report server because of undefined config.reverse_report_port');
17 return; 18 return;
18 } 19 }
19 20
20 const server = xmlrpc.createServer({ port: config.reverse_report_port }); 21 const server = xmlrpc.createServer({ port: config.reverse_report_port });
21 22
22 logger.info('Reverse report server listen on port ' + config.reverse_report_port); 23 logger.info('Reverse report server listen on port ' + config.reverse_report_port);
23 24
24 server.on('NotFound', function (method, params) { 25 server.on('NotFound', function (method, params) {
25 logger.warn('REVERSEREPORT: Unknown method recevied on XMLRPC server', {method: method, params: params}); 26 logger.warn('REVERSEREPORT: Unknown method recevied on XMLRPC server', {method: method, params: params});
26 }); 27 });
27 28
28 server.on('topUpReport', function (err, params, callback) { 29 server.on('topUpReport', function (err, params, callback) {
29 30
30 logger.info('REVERSEREPORT: Got XMLRPC topUpReport request from partner', {method: 'topUpReport', params: params}); 31 logger.info('REVERSEREPORT: Got XMLRPC topUpReport request from partner', {method: 'topUpReport', params: params});
31 matrix.last_topupReport_params = params; 32 matrix.last_topupReport_params = params;
32 33
33 const paramsCount = params.length; 34 const paramsCount = params.length;
34 for (let i = 0; i < paramsCount; i++) { 35 for (let i = 0; i < paramsCount; i++) {
35 let value = params[i]; 36 let value = params[i];
36 37
37 partner.report({ 38 partner.report({
38 trx_id: value.REQUESTID, 39 trx_id: value.REQUESTID,
39 rc: partnerRc[value.RESPONSECODE] || '40', 40 rc: partnerRc[value.RESPONSECODE] || '40',
40 message: value.MESSAGE, 41 //message: value.MESSAGE,
42 message: 'topUpReport: ' + stringify(value);
41 sn: (value.SN || '').replace(/;$/, '') || st24.extractSnFromMessage(value.MESSAGE), 43 sn: (value.SN || '').replace(/;$/, '') || st24.extractSnFromMessage(value.MESSAGE),
42 amount: value.PRICE || st24.extractPriceFromMsg(value.MESSAGE), 44 amount: value.PRICE || st24.extractPriceFromMsg(value.MESSAGE),
43 balance: st24.extractBalanceFromMsg(value.MESSAGE, config.balance_pattern), 45 balance: st24.extractBalanceFromMsg(value.MESSAGE, config.balance_pattern),
44 raw: value, 46 raw: value,
45 misc: { 47 misc: {
46 } 48 }
47 }); 49 });
48 } 50 }
49 51
50 callback(null, 'ACK REPORT OK'); 52 callback(null, 'ACK REPORT OK');
51 }) 53 })
52 } 54 }
53 55
54 create(); 56 create();
55 57