# 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 tagihan - `GET https://timo.tirtaintan.co.id/enquiry-dil/{no_sl}` - Cek data pelanggan - `POST https://timo.tirtaintan.co.id/payment/{token}` - Proses pembayaran - `POST https://timo.tirtaintan.co.id/push-registrasi` - Registrasi pasang baru **Digunakan di:** - `FastController::checkBill()` - Cek tagihan - `FastController::processPayment()` - Proses pembayaran - `SLController::cekSL()` - Cek data SL - `SLController::confirmSL()` - Konfirmasi SL - `UploadController::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 token - `POST {BRI_URL_MUTASI}` - Get mutasi rekening **Digunakan di:** - `SiteController::verifyBri()` - Verifikasi pembayaran BRI - `SiteController::getBriToken()` - Get BRI token - `SiteController::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:** ```php 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 1. **Centralized**: Semua API out di satu tempat (timo.wipay.id_api) 2. **Consistent**: Semua menggunakan HttpHelper yang sama 3. **Maintainable**: Mudah di-maintain dan di-debug 4. **Testable**: Bisa di-mock untuk testing 5. **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 1. ✅ Semua API out sudah di timo.wipay.id_api 2. ⚠️ Pastikan tidak ada API out yang masih di CodeIgniter 3. ⚠️ Test semua external API calls 4. ⚠️ Monitor error logs untuk external API calls 5. ⚠️ Setup retry mechanism jika diperlukan 6. ⚠️ Setup rate limiting jika diperlukan