Commit e9104fb87389dfc147fbc5763cd6bfc5acf29341
1 parent
517105a6b1
Exists in
master
non reload sn
Showing 3 changed files with 28 additions and 3 deletions Side-by-side Diff
main.py
... | ... | @@ -90,6 +90,7 @@ def handleSms(sms): |
90 | 90 | global PRODUCTS |
91 | 91 | global LAST_PRODUCT |
92 | 92 | global LAST_REQUEST_ID |
93 | + global LAST_SN | |
93 | 94 | |
94 | 95 | logger.info(u'Incoming SMS from: {0}; Time: {1}; Message: {2}'.format(sms.number, sms.time, sms.text)) |
95 | 96 | |
... | ... | @@ -105,6 +106,7 @@ def handleSms(sms): |
105 | 106 | |
106 | 107 | if sms.text.find('Terimakasih, transaksi CASH IN ke akun') >= 0: |
107 | 108 | logger.info('handleSms: CASH IN, aktivasi pull jika non aktif') |
109 | + LAST_SN = xltunai.getSNFromCashInMessage(sms.text) | |
108 | 110 | enablePull() |
109 | 111 | return |
110 | 112 | |
... | ... | @@ -140,6 +142,10 @@ def handleSms(sms): |
140 | 142 | pushTopupStatus(LAST_REQUEST_ID, '68', sms.text) |
141 | 143 | return |
142 | 144 | |
145 | + elif sms.text.find('Anda terima uang XLTunai') >= 0: | |
146 | + LAST_SN = xltunai.getSNFromReceiveTransferMessage(sms.text) | |
147 | + return | |
148 | + | |
143 | 149 | destination = xltunai.getDestinationFromMessage(sms.text) |
144 | 150 | if destination == '': |
145 | 151 | logger.warning('handleSms: gagal parsing nomor tujuan') |
... | ... | @@ -301,7 +307,7 @@ def adviceLastSN(requestId, modem): |
301 | 307 | sleep(15) |
302 | 308 | adviceLastSN(requestid, modem) |
303 | 309 | |
304 | - elif lastSNFromHistory == 'P2P TRANSFER': | |
310 | + elif lastSNFromHistory == 'NON RELOAD': | |
305 | 311 | topupMessage = "Topup gagal berdasarkan advice. Trx terakhir adalah P2P Transfer." |
306 | 312 | pushTopupStatus(requestId, '40', topupMessage) |
307 | 313 | DISABLE_SEM = 0 |
test_xltunai.py
... | ... | @@ -131,3 +131,9 @@ def test_getPulsaFromUssdResponseMessage(): |
131 | 131 | def test_getLastSNFromMessage(): |
132 | 132 | assert xltunai.getLastSNFromHistoryMessage('Transaksi Terakhir : 20063778248257/5500/12-02-2016 14:37:08/M201312021528418273770285/P201511211752675316198716/RELOAD XL 5000') == '20063778248257' |
133 | 133 | assert xltunai.getLastSNFromHistoryMessage('Transaksi Terakhir :\n20063778248257/5500/12-02-2016 14:37:08/M201312021528418273770285/P201511211752675316198716/RELOAD XL 5000') == '20063778248257' |
134 | + | |
135 | +def test_getSNFromReceiveTransferMessage(): | |
136 | + assert xltunai.getSNFromReceiveTransferMessage('Anda terima uang XLTunai Rp2500000 dr 6287886957792 DIDIT ARIYANTO pada 19/02/2016 16:14:32.Cek saldo di *123*120#.RefID 49498359729433. Info hub 817') == '49498359729433' | |
137 | + | |
138 | +def test_getSNFromCashInMessage(): | |
139 | + assert xltunai.getSNFromCashInMessage('Terimakasih, transaksi CASH IN ke akun 6287886957792 berhasil. Jumlah transaksi Rp 5000000, biaya 0. Saldo anda saat ini 5000000 . Ref ID: 96346333194106') == '96346333194106' |
xltunai.py
... | ... | @@ -82,7 +82,20 @@ def getBalanceFromMessage(message): |
82 | 82 | return int(sn) |
83 | 83 | except: |
84 | 84 | return 0 |
85 | + | |
86 | +def getSNFromReceiveTransferMessage(message): | |
87 | + try: | |
88 | + sn = "".join(re.findall(r'RefID (\d+)', message)) | |
89 | + return sn | |
90 | + except: | |
91 | + return | |
85 | 92 | |
93 | +def getSNFromCashInMessage(message): | |
94 | + try: | |
95 | + sn = "".join(re.findall(r'Ref ID: (\d+)$', message)) | |
96 | + return sn | |
97 | + except: | |
98 | + return | |
86 | 99 | |
87 | 100 | def toInternationalNumber(number): |
88 | 101 | return re.sub(r'^0', '62', number) |
... | ... | @@ -150,8 +163,8 @@ def getMasaAktifFromUssdResponseMessage(message): |
150 | 163 | return time.strftime("%Y-%m-%d", masa_aktif) |
151 | 164 | |
152 | 165 | def getLastSNFromHistoryMessage(message): |
153 | - if re.findall(r"P2P TRANSFER", message): | |
154 | - return 'P2P TRANSFER' | |
166 | + if not re.findall(r"RELOAD", message): | |
167 | + return 'NON RELOAD' | |
155 | 168 | |
156 | 169 | sn = re.findall(r"Transaksi Terakhir\s:\s(\d+)", message) |
157 | 170 | if sn: |