Files
api-wipay/ALL_FEATURES_COMPARISON.md

15 KiB

Perbandingan Lengkap Semua Fitur: timo.wipay.id vs timo.wipay.id_api

Status: Semua Fitur Sudah Sesuai


1. User Management (Manajemen Pengguna)

1.1 Registrasi User (/timo/daftar)

Backend Lama:

  • Input: nama, username, email, no_hp, password
  • Validasi: username & email unik
  • Password: MD5 hash
  • Default biaya_admin: 2500 (dari config.php: default_biaya_admin)
  • Response: status 200 jika berhasil

Backend Baru:

  • Input sama dengan backend lama
  • Validasi username & email unik
  • Password: MD5 hash
  • Default biaya_admin: 2500 (sudah diperbaiki)
  • Response format sama

1.2 Login (/timo/login)

Backend Lama:

  • Input: username, password, fcm_token (opsional)
  • Validasi: MD5 password
  • Update FCM token jika ada
  • Response: user object + data_sl array

Backend Baru:

  • Input sama dengan backend lama
  • Validasi MD5 password
  • Update FCM token jika ada
  • Response format sama: user + data_sl

1.3 Login Token (/timo/login_token)

Backend Lama:

  • Input: username, password (sudah di-hash), fcm_token
  • Validasi: password langsung compare (tidak di-hash lagi)
  • Response: user + data_sl

Backend Baru:

  • Input sama dengan backend lama
  • Validasi password langsung compare
  • Response format sama

1.4 Update Akun (/timo/update_akun)

Backend Lama:

  • Update: nama_lengkap, email, no_hp
  • Validasi token
  • Response: data user terbaru

Backend Baru:

  • Update fields sama
  • Validasi token
  • Response format sama

1.5 Update Password (/timo/update_password)

Backend Lama:

  • Validasi password lama (MD5)
  • Update password baru (MD5)
  • Response: status sukses/gagal

Backend Baru:

  • Validasi MD5 password lama
  • Update MD5 password baru
  • Response format sama

2. Service Line (SL) Management

2.1 Cek SL (/timo/cek_sl)

Backend Lama:

  • Input: token, no_sl
  • Validasi: SL tidak boleh sudah terdaftar oleh user lain (status 300)
  • Cek ke API TIMO: enquiry-dil/{no_sl}
  • Response: data pelanggan dari TIMO API

Backend Baru:

  • Input sama
  • Validasi status 300 jika sudah terdaftar
  • Cek ke API TIMO sama
  • Response format sama

2.2 Confirm SL (/timo/confirm_sl)

Backend Lama:

  • Input: token, no_sl
  • Cek apakah sudah terdaftar (status 300 jika ya)
  • Cek ke API TIMO: enquiry-dil/{no_sl}
  • Simpan ke daftar_sl dengan mapping:
    • pel_namanama
    • pel_alamatalamat
    • dkd_kdcabang
    • rek_golgolongan
  • Response: data SL yang baru terdaftar

Backend Baru:

  • Input sama
  • Validasi status 300
  • Cek ke API TIMO sama
  • Mapping field sama
  • Response format sama

2.3 Hapus SL (/timo/hapus_sl)

Backend Lama:

  • Input: token, no_sl
  • Validasi: SL harus terdaftar di akun user ini
  • Delete dari daftar_sl
  • Response: status sukses

Backend Baru:

  • Input sama
  • Validasi sama
  • Delete dari database
  • Response format sama

3. Tagihan Management

3.1 History Tagihan (/timo/history/{sl}/{periode})

Backend Lama:

  • Input: sl, periode (dari URL path)
  • Call TIMO API: enquiry-his/{sl}/{periode}
  • Response: data history tagihan

Backend Baru:

  • Input dari URL path sama
  • Call TIMO API sama
  • Response format sama

3.2 Tagihan Saat Ini (/timo/tagihan/{sl})

Backend Lama:

  • Input: sl (dari URL path)
  • Call TIMO API: enquiry/{sl}
  • Response: data tagihan aktif

Backend Baru:

  • Input dari URL path sama
  • Call TIMO API sama
  • Response format sama

4. Payment Flow (Alur Pembayaran)

4.1 Request Pembayaran (/timo/request_pembayaran)

Backend Lama:

  • Input: token, no_sl, nama_bank, no_rek
  • Cek pembayaran aktif (DIBUAT & belum expired)
  • Jika expired → update status EXPIRED
  • Buat pembayaran baru:
    • Call TIMO API: enquiry/{no_sl}
    • Hitung total + biaya admin
    • Generate kode unik
    • Expired: +1 hari
  • Response: data pembayaran

Backend Baru:

  • Input sama + payment_method (transfer/qris)
  • Cek pembayaran aktif & expired sama
  • Buat pembayaran baru sama
  • Fitur Baru: Support QRIS (< 70rb)
  • Response format sama

4.2 Cek Pembayaran (/timo/cek_pembayaran)

Backend Lama:

  • Input: token, no_sl
  • Cari pembayaran: DIBUAT atau MENUNGGU VERIFIKASI
  • Response: data pembayaran

Backend Baru:

  • Input sama
  • Cari status sama
  • Response format sama

4.3 Cek Transfer (/timo/cek_transfer)

Backend Lama:

  • Input: token, no_sl
  • Cari pembayaran: MENUNGGU VERIFIKASI
  • Update: tanggal_cek_bayar, banyak_cek (increment)
  • Response: data pembayaran

Backend Baru:

  • Input sama
  • Cari status sama
  • Update fields sama
  • Response format sama

4.4 Upload Bukti Transfer (/timo/upload_bukti_transfer)

Backend Lama:

  • Input: token, no_sl, pembayaran (no_trx), photo (base64)
  • Upload foto
  • Update bukti_transfer & status MENUNGGU VERIFIKASI
  • Kirim Telegram ke admin
  • Response: status sukses

Backend Baru:

  • Input sama
  • Upload foto sama
  • Update status sama
  • Kirim Telegram ke admin
  • Response format sama

4.5 Batal Pembayaran (/timo/batal_pembayaran)

Backend Lama:

  • Input: token, no_rek (no_trx)
  • Cari pembayaran: DIBUAT
  • Update status: DIBATALKAN
  • Response: status 200 (pesan tetap default)

Backend Baru:

  • Input sama
  • Cari status sama
  • Update status sama
  • Response format sama (pesan tetap default)

4.6 Confirm Pembayaran (/timo/confirm_pembayaran)

Backend Lama:

  • Input: token, no_rek (no_trx)
  • Cari pembayaran: MENUNGGU VERIFIKASI
  • Update status: DIBAYAR
  • Response: status 200 (pesan tetap default)

Backend Baru:

  • Input sama
  • Cari status sama
  • Update status sama
  • Response format sama

4.7 History Bayar (/timo/history_bayar)

Backend Lama:

  • Input: token
  • Ambil semua pembayaran: DIBAYAR
  • Response: array history pembayaran

Backend Baru:

  • Input sama
  • Filter status sama
  • Response format sama

4.8 Cek Status QRIS (/timo/cek_status_qris) FITUR BARU

Backend Baru:

  • Input: token, no_sl
  • Cek status QRIS via API (max 3 attempts, 15s interval)
  • Jika paid → auto approve → kirim WhatsApp
  • Jika unpaid (setelah 3x) → show upload proof form
  • Response: status pembayaran

5. Upload Features

5.1 Upload Catat Meter (/timo/upload_catat_meter)

Backend Lama:

  • Input: token, no_sl, angka, photo (base64)
  • Validasi: user baru → cek no_sl tidak digunakan user lain
  • Validasi: user lama → cek no_sl sesuai dengan data user
  • Upload foto
  • Simpan ke catat_meter
  • Kirim ke external API: upload-catat-meter/{no_sl}
  • Response: status sukses

Backend Baru:

  • Input sama
  • Validasi sama (user baru/lama)
  • Upload foto sama
  • Simpan ke database sama
  • Kirim ke external API sama (payload: filename, bukan URL)
  • Response format sama

5.2 Upload Pasang Baru (/timo/upload_pasang_baru)

Backend Lama:

  • Input: token, no_sl, nama, email, telepon, nik, alamat, photo
  • Upload foto
  • Simpan ke pasang_baru
  • Kirim ke external API: push-registrasi (payload dalam data key)
  • Jika berhasil, dapat reg_id (no SL baru)
  • Auto insert ke daftar_sl jika dapat no SL
  • Response: status sukses

Backend Baru:

  • Input sama
  • Upload foto sama
  • Simpan ke database sama
  • Kirim ke external API sama (payload dalam data key)
  • Auto insert ke daftar_sl jika dapat no SL
  • Response format sama

5.3 Upload Gangguan (/timo/upload_gangguan)

Backend Lama:

  • Input: token, no_sl, gangguan (id jenis), feedback, lokasi, photo (opsional)
  • Validasi: jenis gangguan wajib foto jika harus_ada_foto = 'YA'
  • Insert ke gangguan dengan status DILAPORKAN
  • Upload foto jika diperlukan
  • Kirim ke external API: pengaduan/{no_sl}
  • Kirim Telegram ke admin gangguan
  • Response: status sukses

Backend Baru:

  • Input sama
  • Validasi wajib foto sama
  • Insert status DILAPORKAN sama
  • Upload foto sama
  • Kirim ke external API sama
  • Kirim Telegram ke admin gangguan
  • Response format sama

5.4 Upload Baca Mandiri (/timo/upload_baca_mandiri)

Backend Lama:

  • Input: token, wrute_id, stand_baca, abnorm_wm, abnorm_env, note, lonkor, latkor
  • Validasi koordinat (GPS > Geocoding > Default)
  • Kirim ke external API: upload-cater/{wrute_id} (form-urlencoded)
  • Simpan ke baca_mandiri_log
  • Response: status sukses

Backend Baru:

  • Input sama
  • Validasi koordinat sama (GPS > Geocoding > Default)
  • Kirim ke external API sama (form-urlencoded)
  • Simpan ke database sama
  • Response format sama

5.5 Upload Bukti Transfer (/timo/upload_bukti_transfer)

Backend Lama:

  • Input: token, no_sl, pembayaran (no_trx), photo (base64)
  • Upload foto
  • Update bukti_transfer & status MENUNGGU VERIFIKASI
  • Response: status sukses

Backend Baru:

  • Input sama
  • Upload foto sama
  • Update status sama
  • Response format sama

5.6 Upload PP (/timo/upload_pp)

Backend Lama:

  • Input: token, photo (base64)
  • Upload foto profil
  • Update photo di tabel pengguna_timo
  • Response: status sukses

Backend Baru:

  • Input sama
  • Upload foto sama
  • Update database sama
  • Response format sama

5.7 Hapus PP (/timo/hapus_pp)

Backend Lama:

  • Input: token
  • Hapus foto profil
  • Update photo = NULL
  • Response: status sukses

Backend Baru:

  • Input sama
  • Hapus foto sama
  • Update database sama
  • Response format sama

6. Other Features

6.1 Promo (/timo/promo)

Backend Lama:

  • Response: data promo aktif

Backend Baru:

  • Response format sama

6.2 Riwayat Pasang (/timo/riwayat_pasang)

Backend Lama:

  • Input: token
  • Ambil semua pasang_baru user
  • Response: array riwayat pasang baru

Backend Baru:

  • Input sama
  • Filter by token sama
  • Response format sama

6.3 Jadwal Catat Meter (/timo/jadwal_catat_meter)

Backend Lama:

  • Input: token
  • Ambil jadwal catat meter user
  • Response: array jadwal

Backend Baru:

  • Input sama
  • Filter by token sama
  • Response format sama

6.4 Request Order Baca Mandiri (/timo/request_order_baca_mandiri)

Backend Lama:

  • Input: token, no_sl
  • Kirim ke external API: order-cater/{no_sl} (form-urlencoded)
  • Response: status sukses

Backend Baru:

  • Input sama
  • Kirim ke external API sama (form-urlencoded)
  • Response format sama

6.5 Reset Password (/timo/buat_kode, /timo/cek_kode, /timo/reset_kode)

Backend Lama:

  • buat_kode: Generate kode unik untuk reset password
  • cek_kode: Validasi kode unik
  • reset_kode: Update password dengan kode unik

Backend Baru:

  • Flow sama dengan backend lama
  • Response format sama

7. Fast WIPAY API (External)

7.1 Check Bill (/fast/check_bill)

Backend Lama:

  • Auth: API Key (X-Client-ID, X-Client-Secret)
  • Input: no_sl
  • Get admin user → timo user
  • Call TIMO API: enquiry/{no_sl}
  • Response: data tagihan

Backend Baru:

  • Auth API Key sama
  • Input sama
  • Flow sama
  • Response format sama

7.2 Process Payment (/fast/process_payment)

Backend Lama:

  • Auth: API Key
  • Input: no_sl, amount
  • Validasi saldo WIPAY
  • Cek tagihan via TIMO API
  • Jika saldo cukup:
    • Deduct saldo WIPAY
    • Call TIMO API: payment/{token}
    • Simpan pembayaran: status DIBAYAR
  • Response: data pembayaran

Backend Baru:

  • Auth API Key sama
  • Input sama
  • Flow sama
  • Response format sama

7.3 Payment Status (/fast/payment_status)

Backend Lama:

  • Auth: API Key
  • Input: transaction_id atau pembayaran_id
  • Cari pembayaran berdasarkan API Key
  • Response: status pembayaran

Backend Baru:

  • Auth API Key sama
  • Input sama
  • Filter by API Key sama
  • Response format sama

7.4 Check WIPAY Saldo (/fast/check_wipay_saldo)

Backend Lama:

  • Auth: API Key
  • Get admin user → timo user → wipay user
  • Hitung saldo dari mutasi terakhir
  • Response: saldo WIPAY

Backend Baru:

  • Auth API Key sama
  • Flow sama
  • Response format sama

8. Admin API (/site/*)

8.1 Verify BRI (/site/verify_bri)

Backend Lama:

  • Ambil token BRI
  • Cari pembayaran BRI: MENUNGGU VERIFIKASI & banyak_cek < 2
  • Call BRI API untuk ambil mutasi
  • Bandingkan jumlah transfer dengan total pembayaran
  • Jika cocok → auto approve → kirim WhatsApp
  • Response: HTML message

Backend Baru:

  • Flow sama
  • Auto approve sama
  • Kirim WhatsApp (sudah ditambahkan)
  • Response HTML format sama

8.2 Approve (/site/approve/{id_trx})

Backend Lama:

  • Input: id_trx (dari URL path)
  • Cari pembayaran: MENUNGGU VERIFIKASI
  • Prepare data payment
  • Call TIMO API: payment/{token}
  • Jika sukses:
    • Update status: DIBAYAR
    • Set tanggal_bayar, jumlah_bayar
    • Kirim WhatsApp ke user
  • Response: status sukses/gagal

Backend Baru:

  • Input sama
  • Flow sama
  • Kirim WhatsApp (sudah ditambahkan)
  • Response format sama

9. API Mandiri (/api/mandiri/{tanggal})

Backend Lama:

  • Input: tanggal (dari URL path)
  • Ambil data catat_meter berdasarkan tanggal
  • Response: data catat meter dengan format khusus (status: 1)

Backend Baru:

  • Input sama
  • Filter by tanggal sama
  • Response format sama (status: 1)

📋 Summary

Semua Fitur Sudah Sesuai:

  1. User Management - Registrasi, Login, Update Akun, Update Password
  2. SL Management - Cek SL, Confirm SL, Hapus SL
  3. Tagihan Management - History Tagihan, Tagihan Saat Ini
  4. Payment Flow - Request, Cek, Upload Bukti, Batal, Confirm, History
  5. Upload Features - Catat Meter, Pasang Baru, Gangguan, Baca Mandiri, Bukti Transfer, PP
  6. Other Features - Promo, Riwayat Pasang, Jadwal Catat Meter, Reset Password
  7. Fast WIPAY API - Check Bill, Process Payment, Payment Status, Check Saldo
  8. Admin API - Verify BRI, Approve
  9. API Mandiri - Data Catat Meter

🆕 Fitur Baru (Tidak Ada di Backend Lama):

  1. QRIS Payment - Payment method baru untuk transaksi < 70rb
  2. QRIS Status Check - Endpoint untuk cek status QRIS dengan retry mechanism

🔔 Notifikasi:

  1. Telegram - Kirim ke admin transaksi & gangguan
  2. WhatsApp - Kirim ke user setelah pembayaran berhasil (BRI & QRIS)

Kesimpulan

Semua logika bisnis sudah 100% sesuai dengan backend lama (timo.wipay.id).

Tidak ada perbedaan logika bisnis yang signifikan. Semua endpoint, validasi, flow, dan response format sudah sesuai dengan backend lama.