Files
api-wipay/EXTERNAL_API_PAYLOAD_VERIFICATION.md

251 lines
7.3 KiB
Markdown
Raw Normal View History

# Verifikasi Payload External API Calls
Dokumen ini memverifikasi semua external API calls dan memastikan payload sesuai dengan API lama.
## 1. TIMO API (timo.tirtaintan.co.id)
### ✅ GET /enquiry/{no_sl}
- **URL**: `https://timo.tirtaintan.co.id/enquiry/{no_sl}`
- **Method**: GET
- **Auth**: Tidak ada
- **Payload**: Tidak ada (GET request)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `TagihanController::tagihan()`, `PembayaranController::requestPembayaran()`, `FastController::checkBill()`
### ✅ GET /enquiry-dil/{no_sl}
- **URL**: `https://timo.tirtaintan.co.id/enquiry-dil/{no_sl}`
- **Method**: GET
- **Auth**: Tidak ada
- **Payload**: Tidak ada (GET request)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `SLController::cekSL()`, `SLController::confirmSL()`
### ✅ GET /enquiry-his/{sl}/{periode}
- **URL**: `https://timo.tirtaintan.co.id/enquiry-his/{sl}/{periode}`
- **Method**: GET
- **Auth**: Tidak ada
- **Payload**: Tidak ada (GET request)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `TagihanController::history()`
### ✅ POST /payment/{token}
- **URL**: `https://timo.tirtaintan.co.id/payment/{token}`
- **Method**: POST
- **Auth**: Tidak ada
- **Payload**:
```json
{
"token": "token_value",
"data": [
{
"rek_nomor": "...",
"rek_total": 0,
"serial": "#TM{timestamp}",
"byr_tgl": "YmdHis",
"loket": "TIMO"
}
]
}
```
- **Headers**:
- `Content-Type: application/json`
- `Accept-Encoding: gzip, deflate`
- `Cache-Control: max-age=0`
- `Connection: keep-alive`
- `Accept-Language: en-US,en;q=0.8,id;q=0.6`
- **Timeout**: 15 detik (connection & request)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `SiteController::approve()`
### ✅ POST /push-registrasi
- **URL**: `https://timo.tirtaintan.co.id/push-registrasi`
- **Method**: POST
- **Auth**: Tidak ada
- **Payload**:
```json
{
"data": {
"reg_id": "0",
"reg_unit": "00",
"reg_name": "...",
"reg_address": "...",
"reg_phone": "...",
"reg_email": "...",
"reg_identity": "...",
"reg_tgl": "Y-m-d H:i:s"
}
}
```
- **Headers**:
- `Content-Type: application/json`
- `Accept-Encoding: gzip, deflate`
- `Cache-Control: max-age=0`
- `Connection: keep-alive`
- `Accept-Language: en-US,en;q=0.8,id;q=0.6`
- **Timeout**: 15 detik (connection & request)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `UploadController::uploadPasangBaru()`
### ✅ POST /pengaduan/{no_sl}
- **URL**: `https://timo.tirtaintan.co.id/pengaduan/{no_sl}`
- **Method**: POST
- **Auth**: Tidak ada
- **Payload**:
```json
{
"id": id_gangguan,
"nama": "...",
"alamat": "...",
"telepon": "628...",
"jenis": "1-7",
"judul": "Laporan Gangguan - ...",
"uraian": "..."
}
```
- **Headers**:
- `Content-Type: application/json`
- `Accept: application/json`
- `User-Agent: TIMO-External-API/1.0`
- **Timeout**: 60 detik (request), 30 detik (connection)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `UploadController::sendGangguanToExternalAPI()`
## 2. Rasamala API (rasamala.tirtaintan.co.id)
### ✅ POST /timo/upload-catat-meter/{no_sl}
- **URL**: `https://rasamala.tirtaintan.co.id/timo/upload-catat-meter/{no_sl}`
- **Method**: POST
- **Auth**: Tidak ada
- **Payload**:
```json
{
"token": "...",
"no_sl": "...",
"nama_pelanggan": "...",
"alamat": "...",
"angka_meter": "...",
"photo": "filename.jpg",
"uploaded_at": "Y-m-d H:i:s"
}
```
- **Headers**:
- `Content-Type: application/json`
- `Accept: application/json`
- `User-Agent: TIMO-External-API/1.0`
- **Timeout**: 60 detik (request), 30 detik (connection)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `UploadController::sendCatatMeterToExternalAPI()`
### ✅ POST /timo/order-cater/{no_sl}
- **URL**: `https://rasamala.tirtaintan.co.id/timo/order-cater/{no_sl}`
- **Method**: POST
- **Auth**: Tidak ada
- **Payload**: `kar_id=timo` (form-urlencoded)
- **Headers**:
- `Content-Type: application/x-www-form-urlencoded`
- `Accept: application/json`
- **Timeout**: 30 detik (request), 10 detik (connection)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `OtherController::requestOrderBacaMandiri()`
### ✅ POST /timo/upload-cater/{wrute_id}
- **URL**: `https://rasamala.tirtaintan.co.id/timo/upload-cater/{wrute_id}`
- **Method**: POST
- **Auth**: Tidak ada
- **Payload**: `wmmr_id=...&wmmr_standbaca=...&wmmr_abnormwm=...&wmmr_abnormenv=...&wmmr_note=...&lonkor=...&latkor=...` (form-urlencoded)
- **Headers**:
- `Content-Type: application/x-www-form-urlencoded`
- `Accept: application/json`
- **Timeout**: 30 detik (request), 10 detik (connection)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `UploadController::uploadBacaMandiri()`
## 3. BRI API (partner.api.bri.co.id)
### ✅ POST /oauth/client_credential/accesstoken?grant_type=client_credentials
- **URL**: `https://partner.api.bri.co.id/oauth/client_credential/accesstoken?grant_type=client_credentials`
- **Method**: POST
- **Auth**: `client_id` dan `client_secret` (form-urlencoded)
- **Payload**: `client_id={BRI_KEY}&client_secret={BRI_SECRET}`
- **Headers**:
- `Content-Type: application/x-www-form-urlencoded`
- **Timeout**: 0 (no timeout)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `SiteController::getBriToken()`
### ✅ POST /v2.0/statement
- **URL**: `https://partner.api.bri.co.id/v2.0/statement`
- **Method**: POST
- **Auth**: Bearer token
- **Payload**: `{"accountNumber":"...", "startDate":"Y-m-d", "endDate":"Y-m-d"}` (string JSON langsung)
- **Headers**:
- `BRI-Timestamp: Y-m-d\TH:i:s.000\Z`
- `BRI-Signature: {signature}`
- `Content-Type: application/json`
- `BRI-External-Id: 1234`
- `Authorization: Bearer {token}`
- **Timeout**: 0 (no timeout)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `SiteController::getMutasi()`
## 4. WhatsApp API (app.whappi.biz.id)
### ✅ POST /api/qr/rest/send_message
- **URL**: `https://app.whappi.biz.id/api/qr/rest/send_message`
- **Method**: POST
- **Auth**: JWT Token (Bearer)
- **Payload**:
```json
{
"messageType": "text",
"requestType": "POST",
"token": "JWT_TOKEN",
"from": "6282317383737",
"to": "628...",
"text": "pesan"
}
```
- **Headers**:
- `Content-Type: application/json`
- `Authorization: Bearer {JWT_TOKEN}`
- **Timeout**: 60 detik (request), 30 detik (connection)
- **Retry**: 3 kali
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `WhatsAppHelper::sendWa()`
## 5. Telegram API (api.telegram.org)
### ✅ POST /bot{token}/sendMessage
- **URL**: `https://api.telegram.org/bot{token}/sendMessage`
- **Method**: POST
- **Auth**: Bot token di URL
- **Payload**: `chat_id=...&text=...&parse_mode=Markdown` (form-urlencoded)
- **Headers**: Tidak ada khusus
- **Timeout**: 30 detik (request), 10 detik (connection)
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `TelegramHelper::sendTelegram()`
## 6. OpenStreetMap Nominatim API
### ✅ GET /search
- **URL**: `https://nominatim.openstreetmap.org/search?format=json&q={address}&limit=1`
- **Method**: GET
- **Auth**: Tidak ada
- **Headers**:
- `Accept: application/json`
- `User-Agent: TIMO-APP/1.0`
- **Timeout**: 10 detik
- **Status**: ✅ Sudah sesuai
- **Lokasi**: `GeocodingHelper::getCoordinatesFromAddress()`
## Summary
**Semua external API calls sudah sesuai dengan API lama:**
- Payload format sama
- Headers sama
- Timeout settings sama
- Authentication method sama
- URL endpoints sama
**Tidak ada yang terlewat!**