BCA Parser

Melanjutkan postingan terdahulu, berikut adalah class untuk mengambil saldo dan mutasi rekening (untuk saat ini hanya) dari internet banking BCA:

IbParser.php

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:

notifier.php

Semoga bermanfaat :)

Jikalau anda menemui masalah

Mohon cek komentar-komentar berikut:

20 thoughts on “BCA Parser”

  1. 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

  2. Terima kasih infonya gan :D

    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.

  3. 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.

    1. 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 :D

      • Beberapa test awal sudah lancar (IP Server, path, dkk)
      • Apakah bener-bener ngga ada pesan error/notice PHP?

      Mungkin ada hal tertentu yang membuat scriptnya ngga jalan di server mas. Langkah awal debugnya sepertinya adalah dengan mengubah fungsi curlexec(), ganti
      curl_setopt( $this->ch, CURLOPT_RETURNTRANSFER, 1 ); menjadi curl_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. :D

  4. 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

    1. 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.

    1. 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.

  5. gan saya coba yang

    getTransactions( $bank, $user, $pass ); ?>
    Transaksi :

    kenapa gagal ambil transaksi terus yah ?
    untuk yang ambil jumlah rekening bisa

    thx gan

    1. maap lama balasnya gan :D

      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.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>