Implementasi Bridging VClaim & Antrean Online (Antrol) menggunakan Golang & Gofiber/Fiber v2
Aplikasi ini di-build dengan Go dan Fiber serta dilengkapi dengan mekanisme standar autentikasi dan dekripsi BPJS Health V2:
- 🔐 Generate Signature: Otomatis generate request signature HMAC-SHA256 (ConsID + Secret + Timestamp).
- 🔓 AES Decryption: Dekripsi otomatis AES-256-CBC untuk response payload BPJS.
- 📦 LZString Decompression: Mendukung dekompresi standar
EncodedURIComponent. - 🚀 High Performance: Menggunakan framework Fiber v2 yang sangat cepat dan scalable.
- 🧩 Modular Structure: Controller / handler dipecah rapi antara layanan VClaim dan Antrean RS dengan best practice dependency injection.
.
├── .env # 🤫 Konfigurasi kredensial (ConsID, Secret, UserKey, BaseURL)
├── main.go # 🚀 Entry point utama (Inisialisasi server & app Fiber)
├── config/
│ └── config.go # ⚙️ Konfigurasi Loader & Environment Variables Binding
├── handler/ # 🌐 Controller untuk memproses HTTP Requests
│ ├── antrean_rs/ # 🏥 Base configs & validation untuk Antrean RS
│ │ ├── base.go
│ │ ├── types.go
│ │ └── ws_bpjs/ # Module spesifik Antrol WS BPJS
│ │ ├── handler.go
│ │ ├── referensi_dokter.go
│ │ ├── referensi_jadwal_dokter.go
│ │ ├── referensi_poli_finger_print.go
│ │ └── referensi_poli.go
│ └── vclaim/ # 🏥 Base configs & types untuk VClaim
│ ├── base.go
│ ├── types.go
│ ├── peserta/ # Module spesifik API Peserta
│ │ └── handler.go
│ └── rencana_kontrol/ # Module spesifik Rencana Kontrol & SEP
│ ├── cari_rencana_kontrol.go
│ ├── cari_sep.go
│ └── handler.go
├── helper/ # 🛠️ Utilitas (Decrypt, Signature, Timestamp & Enkripsi)
├── routes/
│ └── routes.go # 🗺️ File pusat untuk meregistrasikan endpoint Fiber
├── go.mod # 🔗 Daftar Dependencies Golang
└── README.md # 📖 Dokumentasi
- Go versi 1.20+ (Direkomendasikan versi terbaru)
- Git
cd "API_BPJS" (Bila belum di-clone dari repository mandiri)
Instal semua modul / package Gofiber beserta utilitas lainnya:
go mod tidyAplikasi ini meload kredensial / akses API BPJS dari file .env. Buat atau perbarui file bernama .env di folder utama aplikasi dan salin konfigurasinya dengan format berikut. Pastikan menggunakan kredensial staging BPJS untuk proses uji coba (Testing):
APP_PORT=8080
# Kredensial Antrean RS (Antrol)
ANTREAN_RS_BASE_URL=https://bpjs
ANTREAN_RS_CONSID=12345
ANTREAN_RS_SECRET=your_secret
ANTREAN_RS_USERKEY=your_user_key
# Kredensial VClaim
VCLAIM_BASE_URL=https://bpjs
VCLAIM_CONSID=12345
VCLAIM_SECRET=your_secret
VCLAIM_USERKEY=your_user_keygo run main.goBila berhasil, aplikasi akan memunculkan log sukses dan server menyala di port 8080 (sesuai konfigurasi APP_PORT). Buka browser pada http://localhost:8080/bridging-bpjs/ untuk mengecek respond awal server.
Semua endpoint dilindungi di bawah prefix Base URL: http://localhost:8080/bridging-bpjs/
GET/vclaim/peserta/:noka➔ Cari data kepesertaan berdasarkan No Kartu.GET/vclaim/rencana-kontrol/nosep/:nosep➔ Cari data Surat Kontrol berdasarkan No SEP.GET/vclaim/rencana-kontrol/noSuratKontrol/:no_surat_kontrol➔ Cari detail Rencana Kontrol berdasarkan Nomor Surat.
GET/antrol/ref/poli➔ Mengambil referensi list poli.GET/antrol/ref/dokter➔ Mengambil referensi nama dokter.GET/antrol/ref/jadwaldokter/kodepoli/:kodepoli/tanggal/:tanggal➔ Mengecek ketersediaan Jadwal Dokter sesuai Poli dan Tanggal.
Jika Anda ingin menambahkan modul fitur BPJS baru (Contoh: Menambahkan /vclaim/sep):
- Buat Folder Baru: Tambahkan di bawah
handler/vclaim/sep//handler/antrean_rs/... - Setup File Handler Utama: Rujuk
handler.goyang digunakan pada module yang telah ada (sepertihandler/vclaim/rencana_kontrol/handler.go) agar dapat menggunakan propertiBaseHandler. - Tambahkan Fungsi Controller: Tulis sebuah file misal
insert_sep.gountuk menangani endpoint logic. - Registrasi Routes: Daftarkan file baru ke grup Fiber pada file
routes/routes.go.