Initial commit: API Wipay dengan fix CORS untuk GET request
This commit is contained in:
117
EXTERNAL_API_MIGRATION.md
Normal file
117
EXTERNAL_API_MIGRATION.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# 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 mandiri
|
||||
- `src/Controllers/FastController.php` - Controller untuk Fast WIPAY API
|
||||
- `src/Controllers/SiteController.php` - Controller untuk Site (admin) API
|
||||
|
||||
## Authentication
|
||||
|
||||
### API Key Authentication
|
||||
- Header: `X-Client-ID` dan `X-Client-Secret`
|
||||
- Atau via query params: `client_id` dan `client_secret`
|
||||
- Atau via body: `client_id` dan `client_secret`
|
||||
|
||||
### Endpoint yang Tidak Perlu Auth
|
||||
- `GET /api/mandiri/{tanggal}` - Public
|
||||
- `GET /fast/test` - Public
|
||||
- `GET /fast/mandiri/{tanggal}` - Public
|
||||
|
||||
## Database Tables
|
||||
|
||||
External API menggunakan tabel:
|
||||
- `api_keys` - Untuk menyimpan API key
|
||||
- `api_logs` - Untuk logging API usage
|
||||
- `admin_users` - Untuk admin user data
|
||||
- `pengguna_timo` - User data
|
||||
- `wipay_pengguna` - WIPAY user data
|
||||
- `wipay_mutasi` - WIPAY transaction history
|
||||
- `pembayaran` - Payment records
|
||||
- `catat_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
|
||||
```bash
|
||||
curl http://localhost:8000/api/mandiri/10112024
|
||||
```
|
||||
|
||||
### Test Fast API (dengan API Key)
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/site/verify_bri
|
||||
|
||||
curl -X POST http://localhost:8000/site/approve/1
|
||||
```
|
||||
|
||||
## Catatan
|
||||
|
||||
1. **API Key Management**: Pastikan tabel `api_keys` dan `api_logs` ada di database
|
||||
2. **BRI Integration**: Site API memerlukan konfigurasi BRI di `.env`
|
||||
3. **CORS**: Semua external API sudah support CORS
|
||||
4. **Response Format**: Fast API menggunakan format `{status: 'success/error', message: '...', data: {...}}`
|
||||
5. **Api Mandiri**: Menggunakan format khusus `{status: 1, date: '...', data: [...]}`
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. Test semua endpoint dengan data real
|
||||
2. Setup API keys di database
|
||||
3. Konfigurasi BRI credentials di `.env`
|
||||
4. Test dengan client yang menggunakan API ini
|
||||
Reference in New Issue
Block a user