diff --git a/partner-otomax.js b/partner-otomax.js index d29f6ff..6c6fc1e 100644 --- a/partner-otomax.js +++ b/partner-otomax.js @@ -152,6 +152,13 @@ function parseMessage(task, message) { rc = '40'; } + if (rc == '00') { + let sn = parseSn(message, config.h2h_out.sn_pattern); + if (sn) { + message = "SN=" + sn + ";" + message; + } + } + callbackReport(requestId, rc, message); } @@ -203,6 +210,21 @@ function createReverseHttpServer() { }); } +function parseSn(message, pattern) { + + try { + let sn_regex = new RegExp(pattern); + let sn_match = message.match(sn_regex); + + return sn_match[1].trim(); + } + catch(e) { + return; + } + +} + exports.start = start; exports.topupRequest = topupRequest; exports.generateSign = generateSign; +exports.parseSn = parseSn; diff --git a/test.js b/test.js index 4e13451..f034252 100644 --- a/test.js +++ b/test.js @@ -7,4 +7,10 @@ describe ('#partner', function() { partner.generateSign('YUSUF', 'XX10', '08123456789', '2140669', '1144', 'abcd').should.equal('vlrN9Yuu4xHAT8_bXIUHKw2NjHo='); }) }); + + describe('parseSn', function() { + it('should return correct sn', function() { + partner.parseSn("TrxID:#451318 TN10.08128364883 SUKSES. SN: 41000905936059. Saldo Rp-20.420 - 10.210 = Rp-30.630 ctr:1 RS:HTH049BSI @2016-06-10 08:11:04 PrintStruk: http://27.111.44.196/report/ Add HANGOUT trxtuj@gmail.com By Holic Reload", "SN: (\\d+)\\.").should.equal("41000905936059"); + }) + }); });