Commit a12a4d7452caa074de4e9f0d26f04cbbccda2361

Authored by Adhidarma Hadiwinoto
1 parent e303a718e9
Exists in master

merge direct dan undirect response

Showing 1 changed file with 33 additions and 24 deletions Side-by-side Diff

... ... @@ -85,26 +85,8 @@ function topupRequest(task, retry) {
85 85 console.log('Status code: ' + res.statusCode );
86 86 var buffer = "";
87 87 res.on( "data", function( data ) { buffer = buffer + data; } );
88   - res.on( "end", function( data ) {
89   -
90   - xml2js(buffer, function (err, result) {
91   - if (err) {
92   - console.log(buffer);
93   - callbackReport(task['requestId'], '40', buffer);
94   - return;
95   - }
96   -
97   - console.log(result);
98   -
99   - var response_code = '68';
100   - var message = result.datacell.message[0].trim();
101   - if (result.datacell.resultcode[0] == '999') {
102   - response_code = '40';
103   - }
104   -
105   - callbackReport(task['requestId'], response_code, message);
106   - });
107   -
  88 + res.on( "end", function( data ) {
  89 + topupResponseHandler(data);
108 90 });
109 91  
110 92 });
... ... @@ -117,12 +99,37 @@ function topupRequest(task, retry) {
117 99 req.end();
118 100 }
119 101  
  102 +function topupResponseHandler(body, request_id) {
  103 + xml2js(body, function (err, result) {
  104 + if (err) {
  105 + console.log(body);
  106 + callbackReport(request_id, '40', buffer);
  107 + return;
  108 + }
  109 +
  110 + console.log(result);
  111 +
  112 + request_id = result.datacell.ref_trxid[0].trim():
  113 +
  114 + var response_code = '68';
  115 + var message = result.datacell.message[0].trim();
  116 +
  117 + if (result.datacell.resultcode[0] == '999') {
  118 + response_code = '40';
  119 +
  120 + if (message.indexOf('Nomor tujuan salah') >= 0) {
  121 + response_code = '14';
  122 + }
  123 + }
  124 +
  125 + callbackReport(request_id, response_code, message);
  126 + });
  127 +}
  128 +
120 129 function createServer() {
121 130  
122 131 var httpServer = http.createServer(function(req, res) {
123   - console.log('Got request from partner, url: ' + req.url);
124   - //console.log('REQ:');
125   - //console.log(req);
  132 + console.log('Got request from partner ("' + req.url + '")');
126 133  
127 134 var body = "";
128 135 req.on('data', function (chunk) {
... ... @@ -130,9 +137,11 @@ function createServer() {
130 137 });
131 138  
132 139 req.on('end', function () {
133   - console.log('POSTed: ' + body);
134 140 res.writeHead(200);
135 141 res.end('OK');
  142 +
  143 + console.log(body);
  144 + topupResponseHandler(body);
136 145 });
137 146 });
138 147