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:
userobject +data_slarray
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_sldengan mapping:pel_nama→namapel_alamat→alamatdkd_kd→cabangrek_gol→golongan
- 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
- Call TIMO API:
- 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:
DIBUATatauMENUNGGU 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& statusMENUNGGU 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 dalamdatakey) - Jika berhasil, dapat
reg_id(no SL baru) - Auto insert ke
daftar_sljika dapat no SL - Response: status sukses
Backend Baru:
- ✅ Input sama
- ✅ Upload foto sama
- ✅ Simpan ke database sama
- ✅ Kirim ke external API sama (payload dalam
datakey) - ✅ Auto insert ke
daftar_sljika 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
gangguandengan statusDILAPORKAN - 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
DILAPORKANsama - ✅ 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& statusMENUNGGU 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
photodi tabelpengguna_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_baruuser - 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 passwordcek_kode: Validasi kode unikreset_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_idataupembayaran_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
- Update status:
- 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_meterberdasarkan 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:
- ✅ User Management - Registrasi, Login, Update Akun, Update Password
- ✅ SL Management - Cek SL, Confirm SL, Hapus SL
- ✅ Tagihan Management - History Tagihan, Tagihan Saat Ini
- ✅ Payment Flow - Request, Cek, Upload Bukti, Batal, Confirm, History
- ✅ Upload Features - Catat Meter, Pasang Baru, Gangguan, Baca Mandiri, Bukti Transfer, PP
- ✅ Other Features - Promo, Riwayat Pasang, Jadwal Catat Meter, Reset Password
- ✅ Fast WIPAY API - Check Bill, Process Payment, Payment Status, Check Saldo
- ✅ Admin API - Verify BRI, Approve
- ✅ API Mandiri - Data Catat Meter
🆕 Fitur Baru (Tidak Ada di Backend Lama):
- ✅ QRIS Payment - Payment method baru untuk transaksi < 70rb
- ✅ QRIS Status Check - Endpoint untuk cek status QRIS dengan retry mechanism
🔔 Notifikasi:
- ✅ Telegram - Kirim ke admin transaksi & gangguan
- ✅ 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.