Sunteți pe pagina 1din 4

<?

php class BPJS { private $xConsId = 'CONSID'; private $secretKey =


"SECRETKEY"; private $uPCare = 'USERNAMEPCARE'; private $pPCare = 'PASSWORDPCARE';
private $kodeApp = '095'; private $host = 'http://dvlp.bpjs-
kesehatan.go.id:9080/pcare-rest-dev'; // DEVEL // private $host = 'http://api.bpjs-
kesehatan.go.id/pcare-rest'; //PRODUCTION private $method; private $header; public
$field; public $id; public $decode; function getUrl($action) { $send = $this-
>field;
$this->method = 'GET';
switch ($action) {
case 'Get_Status_Pulang':
$url = '/v1/statuspulang/rawatInap/'.$send['rawatInap'];
break;

case 'Get_Peserta':
$url = '/v1/peserta/'.$send['keyword'];
break;

case 'Get_Kesadaran':
$url = '/v1/kesadaran';
break;

case 'Get_Diagnosa':
$url = '/v1/diagnosa/'.$send['keyword'].'/'.
$send['start'].'/'.$send['limit'];
break;

case 'Get_Dokter':
$url = '/v1/dokter/'.$send['start'].'/'.$send['limit'];
break;

case 'Get_Provider_Rayonisasi':
$url = '/v1/provider/'.$send['start'].'/'.$send['limit'];
break;

case 'Get_Poli_FKTL':
$url = '/v1/poli/fktl/'.$send['start'].'/'.$send['limit'];
break;

case 'Get_Poli_FKTP':
$url = '/v1/poli/fktp/'.$send['start'].'/'.$send['limit'];
break;

case 'Get_Peserta_By_Jenis_Kartu':
$url = '/v1/peserta/nik/'.$send['keyword'];
break;

case 'Add_Pendaftaran':
$url = '/v1/pendaftaran';
$this->method = 'POST';
break;

case 'Add_Tindakan':
$url = '/v1/tindakan';
$this->method = 'POST';
break;

//KUNJUNGAN
case 'Get_Rujukan_v2':
$url = '/v2/kunjungan/rujukan/'.$send['noKunjungan'];
break;

case 'Get_Rujukan_v1':
$url = '/v1/kunjungan/rujukan/'.$send['noKunjungan'];
break;

case 'Get_Riwayat_Kunjungan':
$url = '/v1/kunjungan/peserta/'.$send['nokartu'];
break;

case 'Add_Kunjungan_v1':
$url = '/v1/kunjungan';
$this->method = 'POST';
break;

case 'Edit_Kunjungan_v1':
$url = '/v1/kunjungan';
$this->method = 'PUT';
break;

//tindakan
case 'Get_Referensi_Tindakan':
$url = '/v1/tindakan/'.$send['start'].'/'.$send['limit'];
break;

case 'Delete_Pendaftaran':
$url = '/v1/pendaftaran/peserta/'.
$send['noKartu'].'/tglDaftar/'.$send['tglDaftar'].'/noUrut/'.$send['noUrut'];
$this->method = 'DELETE';
break;

case 'Delete_Kunjungan':
$url = '/v1/kunjungan/'.$send['noKunjungan'];
$this->method = 'DELETE';
break;

default:
$url = '';
break;
}

$this->generateHeader();
return $this->host.$url;
}

function __Construct($send=array(), $decode = true)


{
$this->xConsId = $session->userdata('PCARE_CONST_ID');
$this->secretKey = $session->userdata('PCARE_SECRET_KEY');
$this->uPCare = $session->userdata('PCARE_USER');
$this->pPCare = $session->userdata('PCARE_PASSWORD');

$this->field = $send;
$this->decode = $decode;
}
private function generateHeader()
{
$tStamp = time();

$xAuth = base64_encode("$this->uPCare:$this->pPCare:$this->kodeApp");

$signature = hash_hmac('sha256', $this->xConsId."&".$tStamp,


$this->secretKey, true);
$encodedSignature = base64_encode($signature);

$context =array(
'http' => array(
'ignore_errors' => true,
'method'=>$this->method,
'header'=>"X-cons-id: $this->xConsId\r\n" .
"X-Timestamp: $tStamp\r\n" .
"X-Authorization: basic $xAuth\r\n" .
"X-Signature: $encodedSignature\r\n" ,
)
);

if (($this->method=='POST')||($this->method=='PUT'))
{
$context['http']['content'] = json_encode($this->field);
$context['http']['header'] .= "Content-Type:
application/json\r\n";
}

$this->header = stream_context_create($context);
}

public function request($action)


{
if (($this->xConsId=='')||($this->secretKey=='')||($this->uPCare=='')||
($this->pPCare==''))
return false;

$data = ['action'=>$action,
'url'=>$this->getUrl($action),
'field'=>$this->field,
'status'=>'00',
'response'=>''
];

$contents = file_get_contents($this->getUrl($action), false, $this-


>header);
$result = json_decode($contents,true);
$data['response'] = serialize($result);

if ((isset($result['response'][0])) || ($result===NULL))
$data['status'] ='99';
else
$data['status'] = '00';

$this->save($data);
return $result;

if (isset($result['response'][0]))
$res = ['err'=>'99', 'msg'=> $result['response'][0]['message']];
else
$res = ['err'=>'00', 'field'=> $result['response']];

if ($this->decode==true)
return $res;
else
return json_encode($res);
}

S-ar putea să vă placă și