Api BPJS dengan Foxpro

Ok langsung aja yaa, sebenarnya bukan foxpro yang bermain, tp cuma interface aja sih foxpro, judulnya gitu biar beda dari yang lain hehe

pertama Api Bpjs, cari aja di google ada koq🙂

naa di contoh doc nya BPJS ada menggunakan PHP, itulah kuncinya, kita bikin file Php, dilocal saja, sebagai jembatan antara webservice Bpsj dan foxpro sebagai client, berikut copasnya

[ code]

<?php
$consID = $_POST[‘consID’];
$consSecret = $_POST[‘consSecret’];
$timestamp = time();
$data = $consID.’&’.$timestamp;

// Generate Signature Key
$signature = hash_hmac(‘sha256’, $data, $consSecret, true);
$encodedSignature = base64_encode($signature);

// Build Request
//$request = curl_init(‘http://api.asterix.co.id/SepWebRest/rujukan/peserta/0001089159052&#8217;);
$request = curl_init(‘http://api.asterix.co.id/SepWebRest/peserta/0000142495694&#8217;);
curl_setopt($request, CURLOPT_CUSTOMREQUEST, ‘GET’);
curl_setopt($request, CURLOPT_HTTPHEADER, array(
‘Accept: application/json’,
‘X-Cons-id: ‘.$consID,
‘X-Timestamp: ‘.$timestamp,
‘X-Signature: ‘.$encodedSignature
));

// Send Request
$result = curl_exec($request);

echo $result;
?>

[/code]

save, kasih nama bpjs.php taruh di server local dalam folder htdocs, misal kita ada folder server, kita akses dibrowser

Capture

selanjutnya koding foxpro


#define httpstatus_ok 200
#define httpstatus_created 201
#define httpstatus_accepted 202
#define httpstatus_multistatus 207
#define httpstatus_badrequest 400
#define httpstatus_unauthorized 401
#define httpstatus_forbidden 403
#define httpstatus_notfound 404
#define httpstatus_internalservererror 500
clea
lconsID = '*****'
lconsSecret = '*****'
lcurl="http://localhost/server/bpjs.php"
ohttp = CreateObject("Microsoft.XMLHTTP")
local lcparam
TEXT TO lcparam NOSHOW TEXTMERGE PRETEXT 7
consID=<<lconsID>>&consSecret=<<lconsSecret>>
ENDTEXT
ohttp.open("POST", lcurl, .F.)
ohttp.setrequestheader('Content-Type', 'application/x-www-form-urlencoded;')
ohttp.setrequestheader('Content-length', alltrim(str(len(lcparam))) )
ohttp.setrequestheader('Connection', 'close')
ohttp.send(lcparam)
ohttp.status
lcjson= ohttp.responseText
JSONStart()
oPoint = JSONObject(lcjson)
?'No Kartu : '+ oPoint.response.peserta.noKartu
?'Nik : '+ oPoint.response.peserta.nik
?'Nama : '+ oPoint.response.peserta.nama

tp tetap biar rahasia keysecret customer ada dalam foxpro,maka kita gunakan POST,

berikut hasilnya

karena result dr Webservice pake format json, maka saya gunakan procedure JSONObject ngambil diri sini

https://qdfoxjson.codeplex.com/

[edit untuk versi Yii2 Advance]


public function actionGetBpjs($nobpjs=0)
{
$request=Yii::$app->request;
$consID = $request->post('consID');
$consSecret = $request->post('consSecret');
$timestamp = time();
$data = $consID.'&'.$timestamp;

// Generate Signature Key
$signature = hash_hmac('sha256', $data, $consSecret, true);
$encodedSignature = base64_encode($signature);

$client = new Client();
$addUrl=($nobpjs>0)?$nobpjs:'';
$response = $client->createRequest()
->setFormat(Client::FORMAT_JSON)
->setMethod('get')
->setUrl('http://api.asterix.co.id/SepWebRest/peserta/'.$addUrl)
->addHeaders([
'X-Cons-id'=>$consID,
'X-Timestamp'=>$timestamp,
'X-Signature'=>$encodedSignature
])
->send();
if ($response->isOk) {
// $content = \Yii\helpers\Json::decode($response->content);

echo $response->content;
}

else{
// $content = \Yii\helpers\Json::decode($response->content);
echo $$response->content;
}
}

tinggal ganti aja Url di foxpro dengan Url baru dari Yii

Capture

 

[sunting]

jika ingin menampilkan perfield dalam hasil json seperti ini berupa array

Capture

tambahkan sinta ini dbawahnya, pada file bpjs.php


...

...

curl_close($request);
$data = json_decode($result, true);
var_dump($data);
echo '<p>No Kartu : '.$data['response']['peserta']['noKartu'].'</p>
<p>Nama : '.$data['response']['peserta']['nama']. '</p>
<p>Tgl Lahir: '.$data['response']['peserta']['tglLahir'].'</p>
<p>Provider : '.$data['response']['peserta']['provUmum']['nmProvider'].'</p>';

klo untuk di Yii yaa tinggal di decode aja

$content = \Yii\helpers\Json::decode($response->content);
echo $content['response']['peserta']['noKartu'];

udah beres gitu aja sih

6 Balasan ke Api BPJS dengan Foxpro

  1. setiawan mengatakan:

    Om mantep postingannya, mohon di bantu saya sudah coba tapi masih bingung di step procedure JSONObject, itu maksudnya bagaimana om?? apakah di bikin lagi jadi file php trus nanti di foxpronya bagaimana??
    tolong penjelasan detailnya om..

    terimakasih

    • Rubah_amuk mengatakan:

      kan hasil dari PHP itu returnya pake Josn, jadi foxpro menampilkan hasil dari responsetext berupa result dari PHP, contoh itu pake Json jadi Json yang diambil foxpro🙂,
      procedure JSONObject perasaan cukup jelas penggunaannya di codeplex itu

  2. setiawan mengatakan:

    iya om, mau nanya lagi kalo lconsID sama lconsSecret itu ID dari kliniknya ya?? ko di klinik saya ga ada ya ID sama SecretID?. mohon petunjuknya om..

  3. norman feby mengatakan:

    mantap….
    cuman gimana cara masukkkan no kartu bpjs nya dari form visual foxpro ke file bpjs.php

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: