Commit e9104fb87389dfc147fbc5763cd6bfc5acf29341

Authored by Adhidarma Hadiwinoto
1 parent 517105a6b1
Exists in master

non reload sn

Showing 3 changed files with 28 additions and 3 deletions Side-by-side Diff

... ... @@ -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
... ... @@ -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'
... ... @@ -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: