Commit defd7a97651a723c4999cf39a34eeb0bb8a51e95
1 parent
b4dfd3b151
Exists in
master
perbaikan penanganan jika last trx non reload
Showing 3 changed files with 15 additions and 6 deletions Side-by-side Diff
main.py
... | ... | @@ -310,6 +310,7 @@ def adviceLastSN(requestId, modem): |
310 | 310 | logger.info(u'USSD response: {0}'.format(message)) |
311 | 311 | |
312 | 312 | lastSNFromHistory = xltunai.getLastSNFromHistoryMessage(message) |
313 | + lastTrxTypeFromHistory = xltunai.getLastTrxTypeFromMessage(message) | |
313 | 314 | |
314 | 315 | if response.sessionActive: |
315 | 316 | response.cancel() |
... | ... | @@ -320,17 +321,16 @@ def adviceLastSN(requestId, modem): |
320 | 321 | sleep(15) |
321 | 322 | adviceLastSN(requestid, modem) |
322 | 323 | |
323 | - elif lastSNFromHistory == 'NON RELOAD': | |
324 | + elif lastTrxTypeFromHistory and lastTrxTypeFromHistory.find('RELOAD') < 0: | |
324 | 325 | topupMessage = "Topup gagal berdasarkan advice. Trx terakhir adalah P2P Transfer." |
325 | 326 | pushTopupStatus(requestId, '40', topupMessage) |
326 | 327 | DISABLE_SEM = 0 |
327 | - | |
328 | + | |
328 | 329 | elif lastSNFromHistory == LAST_SN: |
329 | 330 | topupMessage = "Topup gagal berdasarkan advice. {0} = {1}. {2}".format(lastSNFromHistory, LAST_SN, message) |
330 | 331 | pushTopupStatus(requestId, '40', topupMessage) |
331 | 332 | DISABLE_SEM = 0 |
332 | 333 | |
333 | - | |
334 | 334 | else: |
335 | 335 | topupMessage = "SN={0}; Topup berhasil berdasarkan advice. {1}".format(lastSNFromHistory, message) |
336 | 336 | LAST_SN = lastSNFromHistory |
test_xltunai.py
... | ... | @@ -140,3 +140,7 @@ def test_getSNFromCashInMessage(): |
140 | 140 | |
141 | 141 | def test_getSNFromSentTransferMessage(): |
142 | 142 | assert xltunai.getSNFromSentTransferMessage('Kirim uang ke 6287886957795 an DIDIT ARIYANTO sebesar Rp 580000 berhasil pada 20/02/2016 21:48:54.Ref id 79811319924606. Info hub 817') == '79811319924606' |
143 | + | |
144 | +def test_getLastTrxTypeFromMessage(): | |
145 | + assert xltunai.getLastTrxTypeFromMessage('Transaksi Terakhir :\n39535056518697/750000/22-02-2016 08:36:59/P201602181759182040246743/P201602181759182039246781/P2P TRANSFER') == 'P2P TRANSFER' | |
146 | + assert xltunai.getLastTrxTypeFromMessage('Transaksi Terakhir :\n99345514064378/5500/21-02-2016 15:34:58/M201312021528418273770285/P201511211752675316198716/RELOAD XL 5000') == 'RELOAD XL 5000' |
xltunai.py
... | ... | @@ -171,9 +171,14 @@ def getMasaAktifFromUssdResponseMessage(message): |
171 | 171 | return time.strftime("%Y-%m-%d", masa_aktif) |
172 | 172 | |
173 | 173 | def getLastSNFromHistoryMessage(message): |
174 | - if not re.findall(r"RELOAD", message): | |
175 | - return 'NON RELOAD' | |
176 | - | |
177 | 174 | sn = re.findall(r"Transaksi Terakhir\s:\s(\d+)", message) |
178 | 175 | if sn: |
179 | 176 | return sn[0] |
177 | + | |
178 | +def getLastTrxTypeFromMessage(message): | |
179 | + try: | |
180 | + trxType = message.split('/')[-1] | |
181 | + return trxType | |
182 | + except: | |
183 | + return | |
184 | + |