3.6 KiB
3.6 KiB
External API Migration - Progress
Status: ✅ MIGRATED
Semua external API yang masih dipakai telah dimigrasikan ke Slim 4.
Endpoint yang Sudah Dimigrasikan
1. Api Controller (/api/)
- ✅
GET /api/mandiri/{tanggal}- Data catat meter Mandiri
2. Fast Controller (/fast/)
- ✅
GET /fast/test- Test endpoint (no auth) - ✅
POST /fast/check_bill- Cek tagihan PDAM (with API Key) - ✅
POST /fast/process_payment- Proses pembayaran (with API Key) - ✅
GET /fast/process_payment_get- Proses pembayaran via GET (with API Key) - ✅
GET /fast/payment_status- Cek status pembayaran (with API Key) - ✅
POST /fast/payment_status- Cek status pembayaran (with API Key) - ✅
GET /fast/check_wipay_saldo- Cek saldo WIPAY (with API Key) - ✅
POST /fast/check_wipay_saldo- Cek saldo WIPAY (with API Key) - ✅
GET /fast/check_wipay_saldo_get- Cek saldo WIPAY via GET (with API Key) - ✅
GET /fast/mandiri/{tanggal}- Data Mandiri
3. Site Controller (/site/)
- ✅
POST /site/verify_bri- Verifikasi pembayaran BRI - ✅
POST /site/approve/{id_trx}- Approve transaksi
File yang Dibuat
Models
src/Models/ApiKeyModel.php- Model untuk API key management
Middleware
src/Middleware/ApiKeyMiddleware.php- Middleware untuk API key authentication
Controllers
src/Controllers/ApiController.php- Controller untuk API mandirisrc/Controllers/FastController.php- Controller untuk Fast WIPAY APIsrc/Controllers/SiteController.php- Controller untuk Site (admin) API
Authentication
API Key Authentication
- Header:
X-Client-IDdanX-Client-Secret - Atau via query params:
client_iddanclient_secret - Atau via body:
client_iddanclient_secret
Endpoint yang Tidak Perlu Auth
GET /api/mandiri/{tanggal}- PublicGET /fast/test- PublicGET /fast/mandiri/{tanggal}- Public
Database Tables
External API menggunakan tabel:
api_keys- Untuk menyimpan API keyapi_logs- Untuk logging API usageadmin_users- Untuk admin user datapengguna_timo- User datawipay_pengguna- WIPAY user datawipay_mutasi- WIPAY transaction historypembayaran- Payment recordscatat_meter- Meter reading data
Environment Variables
Tambahkan ke .env:
BASE_URL=http://localhost:8000
# BRI Integration (untuk Site API)
BRI_KEY=your_bri_key
BRI_SECRET=your_bri_secret
BRI_URL_TOKEN=https://api.bri.co.id/oauth/token
BRI_URL_MUTASI=https://api.bri.co.id/v2.0/statement
BRI_REKENING=your_bri_account_number
Testing
Test API Mandiri
curl http://localhost:8000/api/mandiri/10112024
Test Fast API (dengan API Key)
curl -X GET http://localhost:8000/fast/test
curl -X POST http://localhost:8000/fast/check_bill \
-H "X-Client-ID: your_client_id" \
-H "X-Client-Secret: your_client_secret" \
-H "Content-Type: application/json" \
-d '{"no_sl":"059912"}'
Test Site API
curl -X POST http://localhost:8000/site/verify_bri
curl -X POST http://localhost:8000/site/approve/1
Catatan
- API Key Management: Pastikan tabel
api_keysdanapi_logsada di database - BRI Integration: Site API memerlukan konfigurasi BRI di
.env - CORS: Semua external API sudah support CORS
- Response Format: Fast API menggunakan format
{status: 'success/error', message: '...', data: {...}} - Api Mandiri: Menggunakan format khusus
{status: 1, date: '...', data: [...]}
Next Steps
- Test semua endpoint dengan data real
- Setup API keys di database
- Konfigurasi BRI credentials di
.env - Test dengan client yang menggunakan API ini