Mengambil Mutasi Rekening Klik BCA dengan PHP

โ€”

by

in

Script baru 29 September 2014 klik di sini

Beberapa hari yang lalu saya “menagih” ke seseorang yang pernah berjanji untuk mentransfer sejumlah uang ke rekening BCA, yang lantas saya malah malu karena ternyata ia sudah melakukan transfer sejak 1 bulan yang lalu.ย Saya lantas merasakan kebutuhan untuk lebih mengotomatisasi proses-proses di Klik BCA dan mulai mencari-cari barangkali ada script yang cocok.

Saya menemukan topik ini (topiknya udah ilang gan – 28 Jan 2013). Di sana terdapat cuplikan beberapa script yang dapat digunakan, namun masih sedikit kurang pas. Saya lantas melakukan modifikasi atas sebuah script PHP, dengan tujuan agar setidaknya script tersebut dapat mengirim notifikasi setiap kali ada uang yang masuk.

Terdapat sedikit kesulitan karena tidak ada kolom dengan nilai unik di tabel mutasi rekening, posisi baris yang bisa berubah, tanggal yang bisa berubah, baris yang bisa hilang-muncul (saat status transaksi belum benar-benar clear sepertinya), sehingga akhirnya saya membuat logika seperti ini:

  1. Mulai pengecekan.
  2. Ambil baris-baris di tabel mutasi rekening.
  3. Saat membaca setiap baris, periksa apakah ada baris yang isinya sama persis tercatat di pengecekan sebelum?
  4. Untuk setiap baris yang belum tercatat, kirim notifikasi.
  5. Ganti catatan dengan baris-baris yang baru.

“Baris” yang merupakan kombinasi antara tanggal, keterangan, jumlah, dan saldo akhir, diharapkan dapat unik, setidaknya pada rentang waktu yang berdekatan.

Logika di atas kurang baik, lebih mudah untuk membandingkan saldo antara setiap pengecekan, kalau beda berarti ada transaksi baru kan? ๐Ÿ˜€ Memang ada kemungkinan debet & kredit yang sama persis yang terjadi tepat di antara pengecekan, tapi sepertinya kecil sekali.

29 September 2014

Hasilnya lumayan bisa berguna. Saya akan menerima email setiap kali ada yang berubah di halaman mutasi rekening, yang tapi termasuk juga perubahan dari PEND menjadi tanggal.

Seluruh transaksi akan mengaktifkan notifikasi, jadi tidak hanya transaksi kredit. Tidak jelek juga karena sistim Klik BCA hanya mengirim notifikasi atas transaksi debet yang dilakukan melalui Klik BCA (tidak termasuk transaksi ATM, kartu debit, dsb.).

Script dapat dilihat di sini. Seharusnya script ini akan langsung berfungsi saat dipanggil (setelah diletakkan di server dan setelah mengisi nilai beberapa variabel di bagian atas), dengan asumsi setting server anda sama dengan saya. Jika sudah yakin berfungsi, eksekusi script lantas dapat dilakukan setiap jam melalui cron.

Semoga berguna. Jika anda mencoba script ini dan bingung, jangan ragu untuk bertanya. Jika anda memiliki cara yang lebih baik maupun alur yang lebih efisien, dimohon masukannya. Terima kasih sebelumnya.


Comments

46 responses to “Mengambil Mutasi Rekening Klik BCA dengan PHP”

  1. Terima kasih, Script nya dah di tes, lancar jaya…

    script diatas ada perintah value%28Submit%29=LOGIN
    untuk kasus lain, bagaimana jika tombol submit nya tidak ada name nya
    misal :

    bgmn untuk mengatasinya?

    Terima kasih.

    1. Ngga muncul tuh tulisannya ๐Ÿ˜€

      Kalau form element input type=”submit” ngga ada namanya, tombol akan tetap muncul, bisa di-klik dan akan mensubmit form, tapi element tombol submit tsb ngga ikut dikirimkan.

      Jadi ngga perlu dibuat/disertakan kalau kita membuat script yang mirip dengan ini (menggunakan cURL untuk otomatisasi submit dkk).

      Contoh:

      http://www.randomlog.org/bca/test.html

      Lihat URL-nya setelah tombol submit ditekan, trus view source juga.

      Contoh tadi kalau mau dibuat lewat cara yang sama maka kira-kira akan menjadi seperti ini (cuma 2 elemen yang dikirimkan):

      $params[] = ‘textfield1=nilai+kolom+1’;
      $params[] = ‘textfield2=nilai+kolom+2’;

      1. Makasih atas pencerahannya pak… ๐Ÿ™‚

  2. sorry masih rada pemula nih. saya dah coba tapi gak berhasil, karena tidak ada muncul text apa2 jadi saya gak bisa check salah nya dimana. tidak ada file yang create juga sih. kalau misalnya mau supaya muncul di browser dulu gimana caranya?
    check mutasinya ini dari kapan sampai kapan yah?

    boleh minta contoh settingan server anda? apa aja yang harus di enabled?

    1. Hostingnya di mana? Saya di DreamHost dan kebetulan tidak ada yang perlu diubah.

      Scriptnya sudah saya ubah-ubah lagi supaya bisa “ngirim notifikasi” untuk lebih dari 1 account pada setiap pengecekan. Tampilan email yang dikirim juga diubah supaya lebih “berguna”.

      Ini script yang saya gunakan sekarang, yang sudah saya pangkas supaya:

      – Langsung menampilkan source dari halaman “Lihat Mutasi Rekening”
      – Ngga ngirim email

      Silakan coba jalankan script tsb (setelah mengisi username & password) langsung dari browser.

    2. Settingan server…

      Yang pasti harus bisa cURL dan apa tuh namanya yang untuk konek ke server lain. Bisa ditest:

      echo file_get_contents( ‘http://www.google.com’ );

      Trus harus bisa bikin file lewat PHP, atau minimal mengedit yang sudah ada.

      Cek mutasi 7 hari terakhir, ada di baris 114 di script di reply sebelum.

  3. help..
    agan punya skrip buat grab mutasi BRI dan BNI ngak ya??
    kalo ada ,mohon masukan nya..
    thanks so much

    1. sekarang belom ada gan ๐Ÿ˜€

      1. masih lum ya gan mutasi bni :p?

      2. blum donk ๐Ÿ˜€

        Lagi mumet ama kerjaan nih gan. Tidur aja kurang. ๐Ÿ˜€

      3. serius gan :p
        wkwkwk
        mohon di bantu ya kalo beneran ada waktu senggang..

    2. BNI sih harusnya gampang gan, BRI tuh yang rada repot karna pake captcha (walau bukan berarti gak bisa). ๐Ÿ˜€

      1. ohhhh
        thanks balas nya..
        kalo yang BNI, agan ada skrip nya ngak ya?
        mohon masukan nya kalo ada..
        trims banyak..^^

      2. blom ada gan ๐Ÿ˜€

        nanti kalau iseng ane bikin deh, kebetulan ada akun BNI, tapi ga janji buru2 lho ๐Ÿ˜€

      3. ok gan..
        terima kasih sudah mau di bikin..
        ane tunggu ya..
        dalam ini 1 minggu bisa ngak ya gan siap nya?
        coal nya itu tugas ane dari kuliah..
        trims ^^

      4. wah ga bisa gan, masih banyak kerjaan yang perlu diprioritaskan ๐Ÿ˜€

        ane buatnya nanti kalau bener-bener lagi senggang ๐Ÿ˜€

      5. ok gan..
        tidak masalah, yang penting ada aja..
        thanks dah mau bdi bantu ^^

      6. masih lum ya gan, mutasi yang bni?

      7. blum gan, blum ada waktu ๐Ÿ˜€

      8. kalo sudah ada waktu, plis di bantu buatin ya.. ๐Ÿ™‚

      9. hartono Avatar
        hartono

        curl mutasi bni nya gimana gan?
        masih lum ada kabar ya?
        ๐Ÿ˜€

      10. Blum dunk, wkwkwk ๐Ÿ˜€

        Maap gan, situasi ane saat ini bener-bener sedang nggak memungkinkan untuk bikin-bikin sesuatu di luar kerjaan.

  4. gan.. masalah yang PEND itu gmn ya gan?
    bisa diakalin gak kira” ya kalo misalnya mao simpen semua transaksi di database..
    kalo ada PEND nya gitu kan.. datanya jadi ke dobel2
    uda coba utak atik mala berantakan hehe..

    1. Kalau mau nyimpen semuanya ke DB, terus terang ane belom kepikiran cara yang 100% foolproof gan.

      Tapi sebetulnya ane ada nemu logika baru yang lebih oke untuk mastiin adanya “transaksi baru”. Jadi pertama-tama kita cek Informasi Saldo dulu, kalau sama ama sebelomnya, berarti ga ada transaksi baru. Kalo beda, baru buka Mutasi Rekening dkk.

      Jadi perobahan dari PEND ke tanggal gak akan mengirim notifikasi.

      Ane sebetulnya lagi menggunakan script baru berdasarkan logika di atas, tapi masih berantakan codingnya. Ntar kalau udah rapi ane posting deh.

    2. Untuk nyimpen semuanya ke DB, masalah utamanya adalah nilai kolom yang gak konsisten.

      Bukan cuma tanggal vs PEND doang, kolom keterangannya juga nggak konsisten tuh. Bisa jadi sekarang isinya AAA, taunya besok berobah jadi ABA.

      Jadi agak sulit kalau kita mau bikin “unique key” berdasarkan kolom. Kalau kita pakai kolom angka2nya doang (debit-kredit-saldo) yang kayaknya cukup konsisten, kemungkinan nanti bakalan ada yang sama kalau rentang waktunya panjang. Bakal ada transaksi yang gak kecatet karna dianggep udah pernah disimpen.

      Ada ide gan? ๐Ÿ˜€

  5. Ujang Amang Avatar
    Ujang Amang

    Mau tanya gan, kalo misalnya saya punya 2-3 rekening bca prosesnya biar bisa ada laporan ke email kalo ada transfer masuk dari buyer (saya belum paham itu di scriptnya apa aja yg perlu diganti dan dimasukan kedalam script di atas) , Soalnya saya pun ya toko online dengan menggunakan 3 rekening bca untuk memudahkan pencatatan.

    Tapi kalo bisa masuk laporan transfer 3 rekening ke 1 email lebih bampang karena saya tidak perlu login 1-1 ke klikbca saya dan bisa meminimalisir kesalahan memasukan passsword dari karyawan saya.

    1. Yang perlu diganti: proses-prosesnya dimasukkan ke dalam loop di mana setiap loop mewakilkan sebuah account. Sebetulnya script yang ane pakai sekarang seperti ini cara kerjanya, tapi maaf seperti ane sebut di komentar atas, script-nya masih berantakan. Nanti kalau sudah ada kesempatan untuk merapikan, pasti ane rapikan dan langsung posting di sini.

  6. mau donk script bca nya gan…email donk…thx

  7. Web ente tampilannya standard wordpress bangettt….. tapiiiii… isinya ga standard…. LUAR BIASA BERGUNA NYAAAA……

  8. adipura Avatar
    adipura

    Gan, itu scriptnya tinggal upload aja gitu ? gak perlu tambah library CURL gt ?

    1. Betul gan, perlu cURL dan mungkin beberapa hal lain juga perlu disetel.

      1. adipura Avatar
        adipura

        Kalo yang Mutasi Bank Mandiri ada gak gan ?.
        saya udah coba scripnya agan yag bca dan sudah berhasill,,

      2. Mandiri lebih ribet gan karna dia pake captcha. Teorinya sih bisa, tapi rumit.

        Yang agak simple mungkin dengan menghubungkan aplikasinya ke salah satu layanan captcha solver (musti bayar).

      3. adipura Avatar
        adipura

        kira2 agan punya gak yg referensi ato scriptnya yang bank mandiri,,, kalo ada tolong donk kash tahu,, ntar ane ganti ongkosnya, hehe

      4. maap gan ane ga punya ๐Ÿ˜€

        untuk bikin2 juga kayaknya ga bisa deh gan, rumit ngakalin captcha nya. Sementara kalau pake layanan-layanan captcha solver harus dipikir matang-matang dulu karna gak gratis.

      5. adipura Avatar
        adipura

        tp gan bukanya yang ada capthanya itu Cm BRI aja,, mandiri gak ada capthanya ……

      6. Hah, iya ya? ๐Ÿ˜€

        Kalau gitu berarti bisa. Tapi seperti yang ane tulis di komen-komen atas, sekarang ini ane lagi bener-bener ga punya waktu untuk ngerjainnya. ๐Ÿ˜€

  9. klo udah di upload, setting apa lg yg perlu diset y gan?
    lg nyoba belajar gan..

    1. Coba panggil filenya dari http aja gan, trus dilihat ada error ngga.

  10. Susilo Avatar
    Susilo

    gan klo ingin mengetahui ada orang transfer ke rekening kita gmn ya gan klo pakai php, tolong ya gan??? untuk bank nya terserah.

    1. Postingan saya ini tujuan utamanya memang untuk itu gan ๐Ÿ˜€

      1.  Avatar
        Anonymous

        gan apakah harus punya username dan pass untuk internet banking…

  11. Very very nice postingan gan ! Jempol dehhh !

    Gan, kebeneran ane ada kerjaan (real project, real client) yg memerlukan hal semacam itu, tapi utk account bisnis BCA dan Mandiri. Kalo yg agan share di postingan kan utk BCA account personal ya. Berani terima tantangan kerja sama dgn ane gan ? Ane sudah siapin account bisnis BCA dan Mandiri demi project tsb. Beda banget pokoknya. Gimana gan ?Heheheh ….Email saja kl misal agan minat utk pembicaraan lebih lanjut ya….

    Yg kedua, agan pakai tools apa utk mendeteksi HTTP request dan responsenya sehingga bisa tahu header dan variabel2 apa saja yg dikirimkan ke web server ? Mohon dishare dong…

    Thanks

    1. Untuk deteksi variabel yg terkirim sejujurnya di kasus ini ane gak banyak melakukannya gan. Script dasarnya kan ane ambil di Kaskus dan ane cuma ubah-ubah dikit. Memang ada sedikit keperluan untuk cek-cek gituan yang cuma ane lakukan dengan sistem trial & error ๐Ÿ˜€ Plus ada juga bantuan element inspector di Chrome.

      Mengenai tantangannya, sekedar pembicaraan lebih lanjut supaya ane tau lebih banyak mengenai detilnya sih tidak ada salahnya gan. ๐Ÿ˜€

  12. gan apakah harus punya account di internet banking nya bca???…trs klo sdh punya di isikan dimananya?maaf baru newbie gan…

    1. iya harus punya account dong gan.

      Trus diisikannya di dalem file nya di bagian atas.