partner-scrappingkisel.js
3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
var fs = require('fs');
var https = require('https');
var http = require('http');
var url = require('url');
var request = require('request');
var xml2js = require('xml2js').parseString;
var strftime = require('strftime');
var math = require('mathjs');
var config;
var httpServer;
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
var logTag = __filename.split('/').reverse()[0];
function topupRequest(task) {
if (config.globals.requests_count == undefined) {
config.globals.requests_count = 1;
} else {
config.globals.requests_count++;
}
if (config.globals.active_requests_count == undefined) {
config.globals.active_requests_count = 1;
} else {
config.globals.active_requests_count++;
}
if (config.globals.max_active_requests_count == undefined) {
config.globals.max_active_requests_count = config.globals.active_requests_count;
} else {
config.globals.max_active_requests_count = math.max(config.globals.max_active_requests_count, config.globals.active_requests_count);
}
var options = {
url: config.h2h_out.partner,
qs: {
reqid: task['requestId'],
msisdn: task['destination'],
product: task['remoteProduct']
}
};
console.log(options);
request(options, function (error, response, body) {
if (config.globals.active_requests_count == undefined) {
config.globals.active_requests_count = 0;
} else {
config.globals.active_requests_count--;
}
if (error || response.statusCode != 200) {
console.log(logTag + ': Gateway Error');
callbackReport(task['requestId'], '40', 'Gateway Error');
return;
}
console.log(logTag + ': Supplier response:');
console.log(body);
xml2js(body, function (err, result) {
if (err) {
callbackReport(task['requestId'], '40', body);
return;
}
console.log(result);
var response_code = '68';
var message = result.trx_response.info[0].trim();
if (message == 'Error Parsing') {
response_code = '40';
} else if (message == "Phone number's not found") {
response_code = '14';
} else if (message == "Duplicate transaction") {
response_code = '55';
} else if (message == "TRANSAKSI SUKSES !!!") {
var destination = result.trx_response.msisdn.join(' ').trim();
var product = result.trx_response.product.join(' ').trim();
var ref_num = result.trx_response.ref_num.join(' ').trim();
var harga = result.trx_response.harga.join(' ').trim();
var kode_voucher = result.trx_response.kode_voucher.join(' ').trim();
response_code = '00';
message = 'SN=' + kode_voucher + '; ' + product + ' ' + destination + ' ' + harga + ' ref_num: ' + ref_num + ' kode_voucher: ' + kode_voucher;
}
callbackReport(task['requestId'], response_code, message);
});
});
}
function start(_config, _callbackReport) {
config = _config;
callbackReport = _callbackReport
}
exports.start = start;
exports.topupRequest = topupRequest;