25 December 2014

Notifikasi SMS Perubahan Saldo Akun BCA

Sudah lama sekali sejak saya terakhir posting di blog ini. Kali ini saya mau sharing sesuatu yang semoga bermanfaat untuk temen-temen sekalian.

Awal cerita saya menemukan website super ini dari google. Alamatnya ada di http://www.adiputra.web.id/scrapping-mutasi-klik-bca-dengan-php/ . Berhubung penasaran saya coba saja script saktinya. Eh...ternyata berhasil ! . Mutasi BCA nya bisa terbaca dari page_mutasi.html yang dihasilkan dari script-nya. 

Nah timbul keinginan neh kalau setiap ada transaksi baru, ada notifikasi lewat sms ke handphone sayanya. Jadi tidak perlu lagi koneksi internet untuk sekedar cek saldo lewat handphone. Okay, karena sudah berkenalan dengan OpenWRT, alangkah indahnya scriptnya bisa saya letakkan di router. Lalu tambahkan script tambahan untuk notifikasinya. Rencananya memakai notifikasi via sms , kalau mau juga bisa via email , tinggal di modifikasi sedikit aja script -nya nanti.

Asumsi awalnya adalah routernya sudah bisa jalankan file .php Adiputra diatas dan berhasil. Bisa sms keluar kalau mau notifikasi sms , saya sendiri memakai aplikasi smstools3 . Aplikasi ipk untuk router berarsitektur AR71xx seperti TP-Link MR3020, MR3040, MR3220, MR3420, dll , bisa di download di http://openwrt.jaru.eu.org/attitude_adjustment/ar71xx/packages/smstools3_3.1.15-1_ar71xx.ipk . Lalu saya juga memakai file konversi html ke text agar bisa di utak atik, namanya html2txt.py . Aplikasi curl dan php5-mod-curl juga sudah terinstall dengan rapi. Dan yang terakhir router terkoneksi dengan internet.

Langkah-langkahnya sebagai berikut :
1. Simpan script dari Adiputra diatas dengan nama scrap-bca.php dan bca.php di folder /www/bca 
2. Simpan file html2txt.py ke folder /usr/bin
3. Buat file baru di folder /usr/bin dengan nama ceksaldo.sh yang isinya sebagai berikut :

#!/bin/sh

NUMBER='081223423421'
AWAL=`cat /www/bca/awal.txt`

curl http://192.168.1.1/bca/scrap-bca.php
sleep 10
cat /www/bca/page_mutasi.html | sed -n -e '/Starting/,$p' | head -n 1 | /usr/bin/html2txt.py | tail -n 4 | head -n 1 | grep -o "[0-9,]\+" | head -n 1 > /www/bca/akhir.txt
sleep 2
AKHIR=`cat /www/bca/akhir.txt`

if [ "$AKHIR" != "$AWAL" ]; then
BAWAL=`cat /www/bca/awal.txt | awk '{gsub(",", "");print}'`
BAKHIR=`cat /www/bca/akhir.txt | awk '{gsub(",", "");print}'`
SELISIH=`echo "Rp. $(($BAKHIR-$BAWAL))" | sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta'`
FILE=`mktemp /tmp/send_XXXXXX`
    echo "To: $NUMBER" > $FILE
    echo "" >> $FILE
    echo -ne "Saldo BCA:Rp. $AKHIR \nPerubahan:$SELISIH" >> $FILE
    FILE2=`mktemp /var/spool/sms/outgoing/send_XXXXXX`
    mv $FILE $FILE2
cp /www/bca/akhir.txt /www/bca/awal.txt
fi

Sesuaikan script diatas sesuai kondisi masing-masing:
NUMBER = handphone yang akan di kirimi SMS
192.168.1.1 = ip router 


4. Supaya bisa dieksekusi ceksaldo.sh nya mesti di chmod 0775 /usr/bin/ceksaldo.sh 
5. Buat file baru dengan nama awal.txt di folder /www/bca yang isinya :
123,456

6. Coba jalankan /usr/bin/ceksaldo.sh
7. Jikalau berhasil maka akan ada sms notifikasi ke handphone saat ada perubahan saldo.
8. Selamat mencoba !