Script Membuat Token Bridging Antrian JKN Mobile.
Pada kesempatan kali ini, saya ingin memandu rekan - rekan semua untuk membuat bridging JKN Mobile sesuai dengan pengetahuan saya. Saya berharap postingan saya ini bisa memberi sedikit gambaran bagi rekan - rekan khusus nya rekan - rekan IT Rumah Sakit, yang mana Pemerintah sudah mewajibkan untuk mengkoneksikan SIM RS dengan JKN Mobile milik pemerintah dengan tujuan mempermudah pelayanan untuk para pelanggan Rumah Sakit tersebut. Saya akan memandu rekan - rekan semua menggunakan codeigniter.
Untuk memulai ini tentunya rekan - rekan harus menyiapkan kebutuhan dan mengerti maksud dari bridging tersebut. Adapun kebutuhan - kebutuhan yang harus kita siapkan adalah sebagai berikut ini :
1. Siapkan Katalog Bridging JKN Mobile.
Siapkan katalognya dan pahami maksud dari katalog tersebut. Bagi yang belum memiliki katalognya, rekan - rekan bisa mendownload dari website resmi nya BPJS KESEHATAN. Atau bisa download dari halaman Halaman Download blog ini.
2. Siapkan Framework Codeigniter.
Siapkan framework codeigniter yang akan kita gunakan untuk membuat scriptnya. Sata ini saya masih menggunakan codeigniter versi 3. Untuk mendownload nya rekan - rekan bisa mengunjungi dan mendowload dari website resminya atau bisa klik disini.
3. Siapkan Postman Untuk Menguji Url.
Download Postman yang akan kita gunakan untuk menguji url. Rekan - rekan bisa mendownload dari website resminya. Download Postman.
4. Siapkan IP PUBLIC
IP Public ini digunakan untuk mengakses url per katalog yang akan kita buat dan nantinya akan kita kita coba akses dari postman. Setelah berhasil diuji dipostman rekan - rekan baru mengajukan ke pihak IT BPJS untuk dilakukan pengujian.
5. Siapkan Library Rest Controller, Format.php
Download library Rest Controller, yang akan kita gunakan sebagai rest api controller. Rekan - rekan bisa mendownload nya dihalaman download blog ini. Jika link download tidak berfungsi bisa email saya.
6. Siapkan Web Server
Pada tutorial ini saya menggunakan Xampp, rekan - rekan bisa menyesuaikan sendiri dengan server dan database yang ada.
Setelah persiapan diatas rekan - rekan tersedia, sekarang saat nya kita membuat mulai membuat nya dengan tahapan seperti berikut ini :
- Lakukan instalasi web server, jika belum mengerti caranya rekan - rekan bisa browsing dengan kata kunci cara instal xampp. Atau bisa langsung klik link tutorial "INSTALL XAMPP DI WINDOWS".
- Copy Folder Codeigniter yang sudah rekan - rekan download ganti dengan nama "rest-api-jkn" (nama folder bisa rekan-rekan tentukan sendiri) ke dalam folder htdoc.
- Buat database baru dengan nama jknmobile
- Setting koneksi database dengan cara buka folder rest-api-jkn - pilih application - pilih config - pilih database.php kemudian setting seperti gambar dibawah.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'jknmobile',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
?>
- Setting File config.php dengan cara buka folder rest-api-jkn - pilih application - pilih config - pilih config.php - cari $config['base_url'] = ' '; ganti dengan script dibawah ini :
$config['base_url'] = 'http://127.0.0.1/rest-api-jkn/';
Kita bisa mencobanya secara lokal dulu, jika rekan - rekan sudah memiliki ip public maka 127.0.0.1 bisa diganti dengan ip public masing-masing.
- Kemudian buat folder dengan nama "api" dan simpan di dalam folder controllers. Srtukturnya seperti gambar dibawah ini
- Setelah itu copy kan libraru Rest_Controller.php & Format.php kedalam folder library seperti gambar dibawah ini:
- Sekarang saat nya kita membuat file control nya, buatlah file controller dengan nama token.php kemudian isikan script seperti dibawah ini
<?php
use Restserver\Libraries\REST_Controller;
defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . 'libraries/REST_Controller.php';
require APPPATH . 'libraries/Format.php';
class Token extends REST_Controller {
function __construct()
{
parent::__construct();
$this->load->model('Token_model', 'tkn');
}
// Get Data
public function index_post() {
$request = array('username' => $this->post('username'),
'password' => $this->post('password')
);
$user = $request['username'];
$pass = $request['password'];
// jika id tidak ada (tidak panggil)
if($user === null || $pass === null || $user =='' || $pass =='') {
// maka panggil semua data
$token = $this->tkn->getToken();
// tapi jika id di panggil maka hanya id tersebut yang akan muncul pada data tersebut
} else {
$token = $this->tkn->getToken($user,$pass);
}
if($token) {
$this->response(['response'=>[
'token' => $token
],
'metadata' =>[
'message' => 'OK',
'code' => '200'
],
], REST_Controller::HTTP_OK); // NOT_FOUND (404) being the HTTP response code
} else {
$this->response(
['metadata' =>
[
'message' => 'HTTP HEADER Request Is Invalid',
'code' => '505'
],
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
}
}
}
?>
setelah itu simpan kedalam folder api yang berada didalam folder controllers. - Langkah selanjutnya buat model dengan nama Token_model.php, kemudian masukkan script dibawah ini
<?php
class Token_model extends CI_model {
public function getToken($user = null, $pass = null) {
if($user === null || $pass === null) {
return false;
} else {
$query = $this->db->query("SELECT id,xrsid,username,password
FROM koders
WHERE username = '$user'
AND password = '$pass'");
if($query->num_rows() > 0){
$dtrs = $query->row_array();
$id = $dtrs['id'];
$xrsid = $dtrs['xrsid'];
$username = $dtrs['username'];
$password = $dtrs['password'];
$timezone = new DateTime(null, new DateTimeZone("UTC"));
$timestamp = $timezone->getTimestamp();
$ip = $_SERVER['REMOTE_ADDR'];
$passid = $username.$password;
$settings = ['jwt'=> [
'exp'=>"+10 minutes",
'secret' => $passid,
'JWT_TTL' => 1
]
];
$now = new DateTime();
$future = new DateTime($settings['jwt']['exp']);
$payload = [
"iat" => $now->getTimeStamp(),
"exp" => $future->getTimeStamp()
];
$taketoken = JWT::encode($payload, $settings['jwt']['secret'], "HS256");
$this->db->query("INSERT INTO api_tokens(token,customer_id)VALUES('$taketoken','$ip')");
return $taketoken;
}else{
return false;
}
}
}
}
?>
Keterangan query diatas jika token kosong atau (username / koders) dan pasword kosong maka akan ditolak dan jika terisi saat ada request maka akan mencari dari tabel sudah sesuai atau belum. jika tidak sesuai dengan userrs dan password maka akan ditolak dan jika sesuai maka akan merespon request dengan status OK. Untuk tabel koders bisa disesuaikan dengan tabel masing - masing. setelah itu simpan file tersebut didalam folder model
- Sekarang saat nya kita mencoba url tersebut. Dari langkah yang sudah kita buat tadi maka kita sudah mandapatkan url nya http://[ip]/[nama folder apk]/[nama folder dalam controllers]/[nama file] maka akan tersusun seperti ini http://127.0.0.1/rest-api-jkn/api/token
untuk mencobanya buka postman yang sudah rekan - rekan download sebelumnya kemudian buka workspaces setting seperti gambar dibawah ini :
1. Pilih Metode POST
2. Masukkan URL
3. Klik Bagian Body
4. Klik bagian raw
5. Masukkan Username (User yang tersimpan didatabase) dan Pasword (tersimpan didatabase) dalam format json / seperti gambar diatas.
6. Kemudian Tekan Send
Catatan : Jangan lupa web server dalam kondisi ON ya! (Apache dan MYSQL) nya.
Jika sudah sesuai semua maka hasil nya seperti ini:
token akan menggenerate setiap ada requet.
Dari tutorial di atas maka kita sudah memenuhi satu katalog antrian jkn dengan nama fitur GET TOKEN. Tutorial diatas memenuhi katalog berikut ini :
Demikian tutorial yang saya buat untuk rekan - rekan semua yang ingin membuat bridging SIM RS dengan Antrian JKN Mobile. Semoga bermanfaat bagi kita semua khususnya rekan - rekan IT Rumah Sakit diseluruh Indonesia. Saya Akan melanjutkan tutorial - tutorial berikut nya hingga Semua Katalog dapat kita selesaikan. Jika ada pertanyaan silahkan komentar dengan santun dan jika ada yang bisa kami bantu harap kontak saya melalui email. Klik Halaman kontak untuk detail nya.
Terima kasih. Happy Coding ....





mantap kak, ditunggu lanjutannya kak
BalasHapuscara download Rest Controller, Format.php gimana kak?
BalasHapus