4.0 KiB
4.0 KiB
API Out Architecture - External API Calls
Status: ✅ Semua API Out Sudah di timo.wipay.id_api
Semua external API calls (API out) sekarang sudah di-handle oleh timo.wipay.id_api (Slim 4).
External API yang Dipanggil
1. TIMO PDAM API (timo.tirtaintan.co.id)
Endpoint yang dipanggil:
GET https://timo.tirtaintan.co.id/enquiry/{no_sl}- Cek tagihanGET https://timo.tirtaintan.co.id/enquiry-dil/{no_sl}- Cek data pelangganPOST https://timo.tirtaintan.co.id/payment/{token}- Proses pembayaranPOST https://timo.tirtaintan.co.id/push-registrasi- Registrasi pasang baru
Digunakan di:
FastController::checkBill()- Cek tagihanFastController::processPayment()- Proses pembayaranSLController::cekSL()- Cek data SLSLController::confirmSL()- Konfirmasi SLUploadController::uploadPasangBaru()- Registrasi pasang baru
2. Rasamala API (rasamala.tirtaintan.co.id)
Endpoint yang dipanggil:
POST https://rasamala.tirtaintan.co.id/timo/upload-cater/{wrute_id}- Upload baca mandiri
Digunakan di:
UploadController::uploadBacaMandiri()- Upload baca mandiri
3. BRI API (untuk verifikasi pembayaran)
Endpoint yang dipanggil:
POST {BRI_URL_TOKEN}- Get BRI tokenPOST {BRI_URL_MUTASI}- Get mutasi rekening
Digunakan di:
SiteController::verifyBri()- Verifikasi pembayaran BRISiteController::getBriToken()- Get BRI tokenSiteController::getMutasi()- Get mutasi BRI
4. WhatsApp API (opsional)
Digunakan di:
SiteController::sendPaymentNotification()- Kirim notifikasi WhatsApp
Helper Class
HttpHelper
Semua external API calls menggunakan App\Helpers\HttpHelper::doCurl()
Location: src/Helpers/HttpHelper.php
Method:
HttpHelper::doCurl($url, $method = 'GET', $data = null, $json = false, $headers = [])
Features:
- Support GET dan POST
- Support JSON dan form data
- Error handling
- SSL verification (disabled untuk development)
- Timeout handling
Arsitektur
timo.wipay.id_api (Slim 4)
├── Controllers
│ ├── FastController
│ │ └── checkBill() → HttpHelper → timo.tirtaintan.co.id
│ ├── SLController
│ │ └── cekSL() → HttpHelper → timo.tirtaintan.co.id
│ ├── UploadController
│ │ └── uploadBacaMandiri() → HttpHelper → rasamala.tirtaintan.co.id
│ └── SiteController
│ └── verifyBri() → HttpHelper → BRI API
└── Helpers
└── HttpHelper
└── doCurl() → cURL → External APIs
Keuntungan
- Centralized: Semua API out di satu tempat (timo.wipay.id_api)
- Consistent: Semua menggunakan HttpHelper yang sama
- Maintainable: Mudah di-maintain dan di-debug
- Testable: Bisa di-mock untuk testing
- Error Handling: Error handling yang konsisten
Backend (timo.wipay.id) - CodeIgniter
Status: Backend CodeIgniter TIDAK lagi mengurus API out
Backend CodeIgniter sekarang hanya:
- Admin panel (jika masih digunakan)
- View/UI (jika masih digunakan)
- Database management (jika masih digunakan)
Semua API out sudah pindah ke timo.wipay.id_api
Rekomendasi
Option 1: Full Migration (Recommended)
✅ Semua API out di timo.wipay.id_api
- Semua external API calls dari Slim 4
- Backend CodeIgniter hanya untuk admin panel (jika masih dipakai)
- Atau bisa di-decommission jika tidak dipakai lagi
Option 2: Hybrid
⚠️ Tidak direkomendasikan
- API out di dua tempat (Slim 4 dan CodeIgniter)
- Bisa menyebabkan duplikasi dan konflik
- Sulit di-maintain
Kesimpulan
✅ timo.wipay.id_api (Slim 4) yang mengurus semua API out
Backend CodeIgniter (timo.wipay.id) tidak lagi mengurus API out, semua sudah pindah ke Slim 4.
Next Steps
- ✅ Semua API out sudah di timo.wipay.id_api
- ⚠️ Pastikan tidak ada API out yang masih di CodeIgniter
- ⚠️ Test semua external API calls
- ⚠️ Monitor error logs untuk external API calls
- ⚠️ Setup retry mechanism jika diperlukan
- ⚠️ Setup rate limiting jika diperlukan