Contoh bridging BPJS dengan PHP (Cari nama peserta berdasarkan NIK)

<?php
$data = "1234"; //Ganti dengan consumerID dari BPJS
$secretKey = "5678"; //Ganti dengan consumerSecret dari BPJS
$url = "http://api.asterix.co.id/SepWebRest/peserta/nik/";  //Lihat katalog
$nik = "3302014525481245";  //ganti dengan NIK (nomor KTP)

date_default_timezone_set('UTC');
$tStamp = strval(time()-strtotime('1970-01-01 00:00:00'));
$signature = hash_hmac('sha256', $data."&".$tStamp, $secretKey, true);
$encodedSignature = base64_encode($signature);
$urlencodedSignature = urlencode($encodedSignature);

echo "X-cons-id: " .$data ."<br>";
echo "X-timestamp:" .$tStamp ."<br>";
echo "X-signature: " .$encodedSignature."<br>";

$opts = array(
 'http'=>array(
 'method'=>"GET",
 'header'=>"Host: api.asterix.co.id\r\n".
 "Connection: close\r\n".
 "X-timestamp: ".$tStamp."\r\n".
 "X-signature: ".$encodedSignature."\r\n".
 "User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64)\r\n".
 "X-cons-id: ".$data."\r\n".
 "Accept: application/json\r\n"
 )
);

$context = stream_context_create($opts);

$result = file_get_contents($url.$nik, false, $context);
echo "<br>Respon:";
if ($result === false) 
{ 
 echo "Tidak dapat menyambung ke server"; 
} else { 
 $resultarr=json_decode($result, true);
 $s=$resultarr['response']['start'];
 $l=$resultarr['response']['limit'];
 $c=$resultarr['response']['count'];
 
 echo "<br>Ditemukan ".$c." data, tampil mulai dari nomor ".$s." hingga nomor ".$l."<br>";
 for($i=0;$i<$c;$i++){
     echo "<h1>Nama: ".$resultarr['response']['list'][$i]['nama']."</h1>";
 }
 
 echo "<pre>";
 //print_r($resultarr['response']); 
 echo "</pre>";
}

?>

Sumber rujukan:http://api.bpjs-kesehatan.go.id

32 thoughts on “Contoh bridging BPJS dengan PHP (Cari nama peserta berdasarkan NIK)

  1. salam hormat,
    makasih sdh berbagi, semoga baahagia senantiasa buat bapak.
    saya sdh coba script nya, hanya masih tampil pesan eror sbb:

    X-cons-id: 1000
    X-timestamp:1476729329
    X-signature: hc5xJRpiqKHW4BzMu2L8S08IwuGstt2jvhXkbgTmIbc=

    Warning: file_get_contents(http://api.asterix.co.id/SepWebRest/peserta/nik/7306080302740005): failed to open stream: HTTP request failed! in D:\xampp\htdocs\simrs\tesbrid1.php on line 34

    Respon:Tidak dapat menyambung ke server

    sy pake id: 1000 dan key: 1*** (dapatnya dari info teman juga)

      1. betul mas, alamatnya tela berubah jadi http://dvlp.bpjs-kesehatan.go.id:8081/devWsLokalRest/ dan sdh berhasil tess lewat REST Client..

        hanya respon nya hanya spt ini jika digunakan pd kode di atas:
        X-cons-id: 1000
        X-timestamp:1000
        X-signature: lhnmYpeNhUueTsI4WBs2V1xfQUyYteYOAZ7k6dYfGS4=
        Respon:
        Ditemukan data, tampil mulai dari nomor hingga nomor

        itu kenapa mas ya?
        ini kodenya sesuai yg diatas:

        <?php
        // cari nama berdasar nik

        $data = "1000"; //consumerID BPJS
        $secretKey = "1000"; //consumerSecret BPJS
        $url = "http://dvlp.bpjs-kesehatan.go.id:8081/devWsLokalRest/Peserta/Peserta/nik/&quot;;
        //$url = "http://api.bpjs-kesehatan.go.id/devwslokalrest/peserta/peserta/nik/&quot;;
        $nik = "1674014111920002"; //NIK (nomor KTP)

        date_default_timezone_set('UTC');
        $tStamp = strval(time()-strtotime('1970-01-01 00:00:00'));
        $signature = hash_hmac('sha256', $data."&".$tStamp, $secretKey, true);
        $encodedSignature = base64_encode($signature);
        $urlencodedSignature = urlencode($encodedSignature);

        echo "X-cons-id: " .$data ."”;
        echo “X-timestamp:” .$tStamp .””;
        echo “X-signature: ” .$encodedSignature.””;

        $opts = array(
        ‘http’=>array(
        ‘method’=>”GET”,
        ‘header’=>”Host: dvlp.bpjs-kesehatan.go.id:8081\r\n”.
        “Connection: close\r\n”.
        “X-timestamp: “.$tStamp.”\r\n”.
        “X-signature: “.$encodedSignature.”\r\n”.
        “User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64)\r\n”.
        “X-cons-id: “.$data.”\r\n”.
        “Accept: application/json\r\n”
        )
        );

        $context = stream_context_create($opts);

        $result = file_get_contents($url.$nik, false, $context);
        echo “Respon:”;
        if ($result === false)
        {
        echo “Tidak dapat menyambung ke server”;
        } else {
        $resultarr=json_decode($result, true);
        $s=$resultarr[‘response’][‘start’];
        $l=$resultarr[‘response’][‘limit’];
        $c=$resultarr[‘response’][‘count’];

        echo “Ditemukan “.$c.” data, tampil mulai dari nomor “.$s.” hingga nomor “.$l.””;
        for($i=0;$i<$c;$i++){
        echo "Nama: “.$resultarr[‘response’][‘list’][$i][‘nama’].””;
        }

        echo “”;
        //print_r($resultarr[‘response’]);
        echo “”;
        }

        ?>

        output namanya belum tampil.
        makasih

    1. lihat:
      $data = "1000"; //consumerID BPJS
      $secretKey = "1000"; //consumerSecret BPJS

      ganti 1000 dengan kode konsumer ID dari BPJS dan consumer ID dari BPJS. Setiap rumahsakit pasti diberikan untuk IDS dan secret untuk percobaan

      Untuk melihat detail hasil response dari server BPJS, lihat:
      //print_r($resultarr['response']);
      hilangkan tanda // menjadi:
      print_r($resultarr['response']);

  2. Mas punya cons-id dan secret ny g mas, buat belajar web service bpjs. mohon di sharing mas kalo ada. semoga berkah.

  3. mohon petunjuknya mas sy udah coba tp ms dapat respon json:
    {“metadata”:{“code”:”401″,”message”:”Expired Service”},”response”:{“peserta”:null}}

      1. Halo mas, mohon bantuannya nih ane juga ada kendala seperti ini.
        consumerID dan secretnya sudah benar, tapi respon jsonnya masih seperti ini {“metadata”:{“code”:”401″,”message”:”Expired Service”},”response”:{“peserta”:null}}. ane gunain timeformatnya local time. kira2 apa yang salah ya mas?

  4. alhamdulillah, terima kasih mas,
    kebetulan saya lagi develop buat bridging bpjs di sebuah RS, sempat bingung terkait dgn masalah signature dan akses webservicenya.
    semoga ilmunya berkah buat mas dan keluarga 🙂

  5. Assalamu’alaikum… Artikelnya bagus Mas, bermanfaat banget bisa menambah wawasan saya. Kebetulan saya juga mau belajar oprek untuk bridging BPJS dengan puskesmas, hanya saja saya masih bingung syarat dan caranya bridging (dengan PHP), maklumlah sebagai pemula. Bisa minta contact emailnya Mas.

    1. Wa’alaikumsalam, silahkan mas, email saya contact[at]latiful.hayat.web.id ganti [at] dengan @

    1. Maaf saya tidak dapat mencoba lagi karena consumerid dan consumerSecret yang saya punya tidak berlaku lagi. silahkan coba tanyakan ke pihak programer BPJS untuk masalah tersebut

  6. This blog was… how do I say it? Relevant!! Finally I’ve found something that helped me.

    Appreciate it!

  7. bang saya coba kok pesannya gini ya :

    {“metadata”:{“message”:”Unauthorized, invalid signature”,”Code”:401}}1

    1. 401 berarti unauthorised, alias salah. Silahkan coba pakai restclient. jika pakai restclient berhasil maka key masih aktif, tapi kalau tidak bnerhasil bererti key sudah tidak aktif lagi. Perhatikan pula huruf dan angka yang hampir sama, misalnya S dgn 5, l dgn 1 silahkan cek lagi.

  8. Mas, ada contoh yang panggil method POST gak? Contohnya untuk update data ruangan. Saya udah coba modifikasi code nya… tapi kok respon nya tetap url not found ya? Mohon bantuanya mas… terima kasih

    1. maaf mas saya tidak bisa coba-coba lagi karena tidak punya cons-id dan secret mas untuk belajar, sudah expired

    1. maaf tidak bisa, saya sudah tidak bisa mencoba lagi karena consID sudah expired mas, saya hanya membantu teman untuk koneksi bridging. Bukan yang membuat bridging

  9. kalau errornya begini

    {“metadata”:{“code”:”401″,”message”:”Expired Service”},”response”:{“peserta”:null}}

    kenapa yaa?
    consid : 1***
    pass : ***2

  10. Assalamualaikum mas..
    perkenalkan saya Abdul Fattah
    Saya ingin Mencoba Bridging BPJS dan SIMRS GOS kemenkes
    apakah Ada Dari saudara sekalian File Bridging Proses yang sudah termodifikasi dengan baik
    Jika ada Sya mohon sekiranya agar dari sebagian saudara sekalian mau berbagi file PHP tersebut sebagai bahan pembelajaran yg Inshaa Allah menjadi amal jariah jika berhasil saya aplikasikan bagi rumah sakit kami kedepannya. sekiranya ada saudara sekalian yg ingin berbagi mohon sekiranya luangkan waktu untuk mengirim File Bridging PHP tersebut ke Email saya : Mediapaser [at] gmail.com bagi yg berkenan berbagi semoga Allah Melimpahkan rizki yg banya. amin dan terimkasih atas perhatian serta bantuannya.

Comments are closed.