Di tutorial PHP cURL kali ini kita akan mencoba untuk mengambil data Saldo JHT dari situs BPJS Ketenagakerjaan, data yang akan diambil hanya sebatas Saldo JHT, kalo mau lebih silahkan di utak-atik sendiri.
Script Login BPJS Ketenagakerjaan
Buat file baru bernama bpjs.php tambahkan script dibawah ini
<?php
// bpjs.php
$userid = 'USERID'; // userid bpjs anda
$password = 'PASSWORD'; // password bpjs
$url = 'https://es.bpjsketenagakerjaan.go.id/sso/login.bpjs';
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0");
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'vc=&userid='.$userid.'&pass='.$password.'&submit=');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies');
$hasil = curl_exec($ch);
echo "< pre>";
print_r($hasil);
echo "</ pre>";
Coba akses di browser, bila anda diarahkan ke https://es.bpjsketenagakerjaan.go.id/sso/login.bpjs?error=Silahkan%20Login%20ulang
maka scriptnya sudah benar arahnya
kalo enaknya sih pake PHP CLI biar ngga otomatis di-redirect
Biar ngga perlu susah-susah pindah ke PHP CLI, kita modifikasi script diatas, agar menampilkan script diatas di browser, hapus baris 17-19 ganti dengan
$pecah = explode("<script>window.location='https://es.bpjsketenagakerjaan.go.id/sso/dashboard.bpjs';</script>", $hasil);
if ($pecah) {
echo "< pre>";
print_r(htmlentities($hasil));
echo "</ pre>";
}
else {
echo "Gagal Login";
}
URL https://es.bpjsketenagakerjaan.go.id/sso/dashboard.bpjs
hasil output dari script diatas tandanya kita sudah berhasil login ke sistem. Tinggal pengolahan data
KPJ dan NOHP
KPJ dan nomer HP harus diambil terlebih dahulu baru bisa kita masuk ke proses pengambilan Saldo JHT, karena data ini yang akan di kirim agar bisa mendapatkan Saldo yang kita inginkan.
Ubah script baris 16-25 diatas, ganti menjadi
curl_setopt($ch, CURLOPT_URL, 'https://es.bpjsketenagakerjaan.go.id/sso/profil.bpjs');
curl_setopt($ch, CURLOPT_REFERER, 'https://es.bpjsketenagakerjaan.go.id/sso/dashboard.bpjs');
$hasil = curl_exec($ch);
$pecah_kpj = explode('<td width="48%">', $hasil);
print_r($pecah_kpj);
sekarang buka lagi di browser tampilannya menjadi
klik di tab LAYANAN atau biar mudahnya view source web tersebut
sukses :) data yang kita butuhkan ada di array 11 dan 12. Ubah baris no 20 di atas menjadi
$string = preg_replace('/\s+/','',$pecah_kpj[11]);
$string2 = preg_replace('/\s+/','',$pecah_kpj[12]);
$KPJ = strstr($pecah_kpj[11], '</td>', true);
$NOHP = strstr($pecah_kpj[12], '</td>', true);
$string = preg_replace('/\s+/','',$KPJ);
$string2 = preg_replace('/\s+/','',$NOHP);
echo "< pre>";
echo $string.':'.$string2;
echo "< /pre>";
*nb : penamaan variabel diatas emang aneh :P asalan aja biar cepet jadi
Buka lagi browser dan hasilnya
13000000:628200000000
no KPJ dan no HP dipisahkan oleh tanda :
.
Saldo JHT BPJS Ketenagakerjaan
Langkah terakhir adalah mengambil data saldo JHT, link yang perlu kita akses adalah https://es.bpjsketenagakerjaan.go.id/sso/act/ceksaldo.bpjs
, tau adri mana? login aja ke situs BPJS langsung lalu cek URL-nya manual ;)
Dibawah script diatas tambahkan
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'dataKpj='.$string.'&msisdnaktif=1&msisdn='.$string2);
curl_setopt($ch, CURLOPT_URL, 'https://es.bpjsketenagakerjaan.go.id/sso/act/ceksaldo.bpjs');
curl_setopt($ch, CURLOPT_REFERER, 'https://es.bpjsketenagakerjaan.go.id/sso/ceksaldo.bpjs');
$hasil = curl_exec($ch);
echo "<pre>";
print_r($hasil);
echo "</ pre>";
Buka di browser dan datanya dapat ;)
Demo Online : labs.jaranguda.com
lebih jelas lagi kak link nya
mas link downloadny mati :((