Initial commit: API Wipay dengan fix CORS untuk GET request
This commit is contained in:
146
API_OUT_ARCHITECTURE.md
Normal file
146
API_OUT_ARCHITECTURE.md
Normal file
@@ -0,0 +1,146 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user