Files
api-wipay/API_OUT_ARCHITECTURE.md

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

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

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