diff --git a/partner-masterpulsa-voucher.js b/partner-masterpulsa-voucher.js index 0a593fd..b5fc79b 100644 --- a/partner-masterpulsa-voucher.js +++ b/partner-masterpulsa-voucher.js @@ -23,6 +23,15 @@ function callbackReportWrapper(requestId, rc, message) { logger.warn('Exception on callbackReportWrapper: ' + err); } } + + if (rc != '00' && rc != '68') { + try { + var key = dupcheckKey(config.globals.gateway_name, task); + redisClient.del(key); + } + catch(delErr) { + } + } callbackReport(requestId, rc, message); } @@ -56,8 +65,13 @@ function getRedisKey(task) { return config.globals.gateway_name + '.tid:' + task.requestId; } +function dupcheckKey(gatewayName, task) { + return 'DUPCHECK.gw:' + gatewayName + '.prod:' + task.remoteProduct + '.dest:' + task.destination + '.date:' + strftime('%Y%m%d', new Date); +} + function topupRequest(task, retry) { - var key = 'DUPCHECK.gw:' + config.globals.gateway_name + '.prod:' + task.remoteProduct + '.dest:' + task.destination + '.date:' + strftime('%Y%m%d', new Date); + var key = dupcheckKey(config.globals.gateway_name, task); + redisClient.get(key, function(err, data) { if (err) { callbackReportWrapper(task.requestId, '40', 'Gagal cek anti transaksi duplikat (redis error)'); @@ -258,7 +272,7 @@ function advice(task, retry) { logger.info('Requesting advice to supplier', {requestOptions: requestOptions}); request(requestOptions, function(requestError, requestResponse, requestResponseBody) { if (requestError || requestResponse.statusCode != 200) { - logger.warn('Advice error', {error: request_error, http_response: requestResponse.statusCode}); + logger.warn('Advice error', {error: requestError, http_response: requestResponse.statusCode}); if (retry > 0) { logger.warn('Going to retry advice in ' + adviceDelay + 'ms', {task: task, retry: retry});