Update di: sini
Melanjutkan postingan terdahulu, berikut adalah class untuk mengambil saldo dan mutasi rekening (untuk saat ini hanya) dari internet banking BCA:
Cara Penggunaan
$parser = new IbParser; $parser->getBalance( $bank, $username, $password ); // string, false jika gagal $parser->getTransactions( $bank, $username, $password ); // array, false jika gagal
Contoh
Periksa beberapa variabel yang telah dicoba untuk didefinisikan secara otomatis:
<?php error_reporting( E_ALL ); require( 'IbParser.php' ); $parser = new IbParser(); ?> <pre> IP Server : <?php echo $parser->conf['ip']; ?> Tanggal & Jam : <?php echo date( 'Y-m-d H:i:s', $parser->conf['time'] ); ?> Path : <?php echo $parser->conf['path']; ?> Writable : <?php echo ( is_writable( $parser->conf['path'] ) )? 'Ya': '<span style="color: #ff0000;">Tidak!</span>'; ?> </pre>
Panggil script di atas melalui browser. Kalau lancar, lanjutkan ambil saldo:
<?php $bank = 'BCA'; $user = 'username_klikbca'; $pass = 'password_klikbca'; $balance = $parser->getBalance( $bank, $user, $pass ); ?> <pre> Akun : <?php echo $bank . ' ' . $user; ?> Saldo : <?php echo ( !$balance )? 'Gagal mengambil saldo': number_format( $balance, 2 ); ?> </pre>
Lalu coba lanjut ambil mutasi rekening:
<?php $transactions = $parser->getTransactions( $bank, $user, $pass ); ?> <pre>Transaksi : <?php echo ( !$transactions )? 'Gagal mengambil transaksi': print_r( $transactions, true ); ?></pre>
Dan berikut adalah contoh file yang dapat dijalankan dengan cron untuk memberitahu melalui email setiap kali ada perubahan saldo:
Semoga bermanfaat ๐
Jikalau anda menemui masalah
Mohon cek komentar-komentar berikut:
Comments
37 responses to “BCA Parser”
[…] Script baru 13 Agustus 2013 di postingan ini […]
jalan bos, tapi abis ditambahin kode berikut
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0); //skipping SSL_CERT for host
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, 0); //skipping SSL_CERT
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, 0); //ignoring server redirect
nambahin script ini dimananya gan?
di function curlexec() gan, di situ sekarang ada 1 curl_setopt, tambahin aja 3 lagi ๐
Terima kasih infonya gan ๐
Kalau nggak salah di script Kaskus dulu ketiga option itu memang di-set, tapi ane hilangkan karena rasanya nggak perlu (dan kebetulan tetap berfungsi di kasus ane).
Ane sudah update postingannya.
Gan, ini cara menjalankannya gimana yak? Ane bener-bener gak mudeng gan. Serius. Ini file ditaro dimana? Apakah ditaro di web server / hosting gitu? Atau gmn gan? Thanks berat gan. Kalau Mandiri dan BRI bisa juga gak gan? Thanks. Makasih banyak gan.
iya gan, ditarok di web server ๐
Bank-bank lain teorinya bisa tapi blum saya buat coding nya ๐
Mas, kenapa ya, setiap saya eksekusi selalu gagal ambil saldo dan gagal ambil mutasi.
Apa sudah tidak valid ya?
Beberapa hari terakhir notifiernya kadang ngga jalan (ada uang masuk/keluar tapi saya ngga dapat email, tau-tau kerekap beberapa jam kemudian), tapi saya pikir ini gara-gara koneksi antara hosting saya ke BCA yang sedang bermasalah (wajar).
Notif terakhir yang saya terima adalah beberapa jam yang lalu dan benar (sebelumnya abis beli pulsa PLN di ATM).
Jadi sepertinya masih valid ๐
Mungkin ada hal tertentu yang membuat scriptnya ngga jalan di server mas. Langkah awal debugnya sepertinya adalah dengan mengubah fungsi
curlexec()
, ganticurl_setopt( $this->ch, CURLOPT_RETURNTRANSFER, 1 );
menjadicurl_setopt( $this->ch, CURLOPT_RETURNTRANSFER, 0 );
. Gunanya agar hasil dari dari cURL langsung muncul di layar.1 hal, BCA itu kalau kita logion padahal sedang ada “orang lain” yang login kan akunnya bakal terkunci 10 menit, jadi kalau kita jalanin script trus script nya sukses login tapi gagal logout, trus kita jalanin lagi, akun akan terkunci. Kita ga akan bisa login lagi sampai 10 menit.
Dulu waktu membuat script nya saya menyiapkan beberapa akun BCA, jadi kalau ada yang salah langsung ganti akun yang lain dulu. ๐
Mas, yang di upload file IbParser.php dan notifier.php doank kan
yang kode dibawah “Contoh” itu ga perlu kan?
newbie mas mohon bimbingannya
kalo 2 file php itu di upload sudah terima sich notifikasinya ke email tapi lama terkirimnya
Betul mas, 2 file itu aja. Kalau sudah terima berarti sudah betul, tapi apakah notifier.php sudah dijalankan dengan cron?
Kalau masalah lama, di notifier.php kan di-set supaya dia cuma jalan setiap 20 menit sekali, jadi kalau transaksi terjadi persis setelah dia jalan, notifikasinya baru akan muncul 20 menit kemudian (pas dia “jalan” berikutnya).
Interval notifikasi ini memang jangan terlalu pendek, soalnya ada tips bahwa login ke klikbca ngga boleh lebih dari 100x per hari. Walaupun cron jalan tiap 1 menit, parsing ke klikbca tetap nurut dengan konfigurasi di notifier.php.
oke, makasih mas
mudah mudahan mutasi bank lain juga bisa dibuatkan juga
lumayan nggak capek2 cek manual mutasi transferan
Mas, saya sudah coba scriptnya, untuk cek saldo berhasil, tapi untuk cek mutasi gagal. Mohon petunjuk.
Makasih.
Update gan, ternyata kemungkinan karena hari ini tidak ada mutasi. Untuk ngeset tanggal awal mutasi yg mau dicek, dimana ya ?
Thx
Kayaknya di function __construct( $conf ) gan…
$start = mktime( $d[3], $d[4], $d[5], $d[1], ( $d[2] – 3 ), $d[0] );
… angka 3 coba ditambah… Maks 7 hari gan soalnya dia ngambil dari yang mobile (di situ max 7 hari kalo ga salah).
—
Trus iyah kalau ngambil saldo bisa berarti scriptnya beres. Mutasi ga keambil bisa karna memang ga ada mutasi, atau halaman mutasinya lagi ga bisa dibuka walaupun kita akses secara biasa. Lumayan sering kok kayak gini.
Script saya masih error mas,,, kadang bisa mengambil transaksi kadang GAGAL mengambil transaksi tergantung jam aksesnya. klu pas berhasil sudah bisa menampilkan data2 mutasi saya… dan klu script ini saya tampilkan di mutasiBCA.php:
Tanggal & Jam : conf[‘time’] ); ?>
ternyata gak sama ama tgl & jam di komputer saya…
di tampilan 2014-08-23 00:24:10 tapi tgl di komputer 2014-08-22 11:30:20
saya masih ngetes pake server lokal,,, jadi cuma masalah seting tglnya ya?? di php.ini nya juga sudah saya seting Asia/Jakarta…
saya iseng buat file tes.php, isinya
nah… klu cuma script kayak gitu tgl & waktunya udah sama ama tgl&waktu komputer
Punya solusi mas? saya masih newbie,,, masih banyak yg blm dong … makasih… ๐
Kalau sudah sempat berhasil ambil mutasi rekening berarti sudah benar. Mutasi rekening BCA memang ngga bisa diakses setiap saat, kayaknya di atas jam 8 malam sering ngga bisa (termasuk kalau diakses langsung secara normal lewat browser). Jadi benar “tergantung jam aksesnya” ๐
Untuk memperbaiki tanggal, di bagian function __construct coba diedit aja angka 14-nya (yang berarti adalah jam server ditambah 14 jam).
trus gan itu kalo ga salah ya, ane cuma liat sekias, blum bisa liat mlototin dengan serius ๐
siaapp, thx gan, ane coba2 deh, hehe..
ketemu masalahnya gan, ternyata karena server hosting ane di amerika, maju sehari..jadi kena error end date nya lebih dari current date ๐
gan saya coba yang
getTransactions( $bank, $user, $pass ); ?>
Transaksi :
kenapa gagal ambil transaksi terus yah ?
untuk yang ambil jumlah rekening bisa
thx gan
maap lama balasnya gan ๐
udah ketemu masalahnya? Biasanya kalau sudah sukses cek saldo, maka gagal ambil transaksi cuma karena kebetulan emang ga bisa dari sananya. Biasanya malam antara jam 9 s/d 1 pagi.
Klo script cuma bisa untuk ambil saldo tapi ga bisa liat mutasi itu penyebabnya kesalahan parsing parameter startDt, startMt, startYr, endDt, endMt, dan endYr.
Menurut ane itu penyebab nya, soalnya setelah ‘ngoprek2’ script ini beberapa minggu, ternyata kesalahan parsing data itu menyebabkan gagal ambil saldo.
Btw, terimakasih agan RL yg uda berbaik hati nge-share, terus berkarya gan..
Pak, mau tanya, saya test utk cek saldo dan mutasi sudah bisa muncul, saya test buka di http://localhost/test.php
kemudian saya test notifier.php nya dan bikin scheduler di windows
tapi sepertinya tidak jalan utk notifikasinya,
dan klo saya tidak salah mengerti, klo notifier dijalankan, nanti dia bikin file di folder data, tp utk fungsi mkdirnya ga jalan,
saya test taro di hosting yang linux jg ga jalan notifikasinya
mohon bantuannya ๐
thanks
kalo dibagian die( ‘hapus’ ); // hapus
di comment/hapus, file di folder data bisa muncul saldonya
kira2 salah dimana ya?
maksudnya gan? die(‘hapus’) itu memang harus dihapus kok ๐
maksud ane, baris die() itu memang harus dihapus kalau mau jalan….
Itu ane bikin karna filenya beneran ada di server, kalau dibiarkan bisa dijalankan, nanti bisa aja file tsb kepanggil sama agan2, atau ama crawlerbot2, trus BCA bakalan ngeliat banyak banget login gagal dengan username “username1” dari server ane…. Begitu gan ๐
ada pesan errornya mas?
kalau ga bisa nulis (bikin file) barangkali masalah di permission foldernya?
Pagi gan.. maaf klo commentnya agak beda dengan topik. klo kita mau ambil data harga maskapai penerbangan sesuai dengan kota dan hari, apa bisa juga pakai CURL / parsing gitu gan? Bole share2 by email gan.. Terimakasih ya ^^
iyah bisa aja gan ๐
tapi kalau website2 tiket itu sepertinya kerjasama deh. Soalnya urusannya udah duit & serius, kalau datanya diambil dari nge-parse HTML kan kurang reliable gitu rasanya ๐
udah ga jalan yah gan?
jalan kok gan, barusan aja ada notifikasi…
ane kan dagang online kecil2an, jadi perlu aplikasi ini. Kalo rusak pasti buru2 ane betulin (kalau masih bisa dibetulin) ๐
gagal mengambil saldo gan, padahal sudah benar sesuai instruksi diatas
kalau agan akses klikbca secara biasa lewat browser bisa gan? Takutnya memang pas klikbca nya lagi ga bisa cek saldo (tiap hari biasanya sekitaran jam 8-12 malam)
Saldo : Gagal mengambil saldo
Transaksi : Gagal mengambil transaksi
ada solusi? kenapa gagal yak
Kalau test awal di bagian “Contoh” di postingan atas hasilnya gimana? “Gagal mengambil saldo” itu agan tambahkan di sebelah mana?
[…] Sambungan dari sini. […]