Files
api-wipay/EXTERNAL_API_MIGRATION.md

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 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

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

  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