Files
api-wipay/BUSINESS_LOGIC_COMPARISON.md

149 lines
3.9 KiB
Markdown
Raw Permalink Normal View History

# Perbandingan Business Logic: timo.wipay.id vs timo.wipay.id_api
## ✅ Status: Sudah Sesuai
### 1. Flow Pembayaran BRI ✅
**Backend Lama (timo.wipay.id):**
1. User request pembayaran → status `DIBUAT`
2. User upload bukti transfer → status `MENUNGGU VERIFIKASI`
3. Admin/System cek via `/site/verify_bri` → cek mutasi BRI
4. Jika cocok → auto approve → status `DIBAYAR`
5. Kirim WhatsApp ke user ✅
**Backend Baru (timo.wipay.id_api):**
1. User request pembayaran → status `DIBUAT`
2. User upload bukti transfer → status `MENUNGGU VERIFIKASI`
3. Admin/System cek via `/site/verify_bri` → cek mutasi BRI ✅
4. Jika cocok → auto approve → status `DIBAYAR`
5. Kirim WhatsApp ke user ✅ (sudah ditambahkan)
### 2. Flow Pembayaran QRIS ✅
**Backend Baru (timo.wipay.id_api):**
1. User request pembayaran QRIS (< 70rb) generate QR code
2. User scan QR code → bayar via e-wallet ✅
3. User click "Cek Status" → check status QRIS API ✅
4. Jika paid → auto approve → status `DIBAYAR`
5. Kirim WhatsApp ke user ✅
**Note:** QRIS adalah fitur baru, tidak ada di backend lama.
### 3. Notifikasi Telegram ✅
**Backend Lama:**
- Kirim Telegram ke admin saat ada transaksi baru (BRI)
**Backend Baru:**
- ✅ Kirim Telegram ke admin saat user upload bukti transfer (BRI)
- ✅ Kirim Telegram ke admin gangguan saat ada laporan gangguan
### 4. Notifikasi WhatsApp ✅
**Backend Lama:**
- Kirim WhatsApp ke user setelah pembayaran BRI berhasil
- Format: "_PEMBAYARAN BERHASIL_" dengan detail transaksi
**Backend Baru:**
- ✅ Kirim WhatsApp ke user setelah pembayaran BRI berhasil (via `SiteController::approve()`)
- ✅ Kirim WhatsApp ke user setelah pembayaran QRIS berhasil (via `PembayaranController::autoApproveQris()`)
- ✅ Format sama dengan backend lama
### 5. Auto Approve Flow ✅
**BRI:**
- ✅ Cek mutasi BRI → jika cocok → approve → kirim WhatsApp
**QRIS:**
- ✅ Cek status QRIS → jika paid → approve → kirim WhatsApp
### 6. Kode Unik ✅
**Backend Lama:**
- BRI/Manual: pakai kode unik
- WIPAY: tidak pakai kode unik
**Backend Baru:**
- ✅ BRI/Manual: pakai kode unik (via `KodeHelper::generateKodeUnikPrioritas()`)
- ✅ QRIS: tidak pakai kode unik
- ✅ WIPAY: tidak pakai kode unik
### 7. Status Pembayaran ✅
**Backend Lama:**
- `DIBUAT``MENUNGGU VERIFIKASI``DIBAYAR`
- `DIBUAT``DIBATALKAN` / `EXPIRED`
**Backend Baru:**
-`DIBUAT``MENUNGGU VERIFIKASI``DIBAYAR` (BRI/Manual)
-`DIBUAT``DIBAYAR` (QRIS - auto approve)
-`DIBUAT``DIBATALKAN` / `EXPIRED`
### 8. Expired Policy ✅
**Backend Lama:**
- Pembayaran expired setelah 1 hari
**Backend Baru:**
- ✅ Pembayaran BRI/Manual: expired setelah 1 hari
- ✅ Pembayaran QRIS: expired setelah 30 menit
### 9. Validasi Pembayaran ✅
**Backend Lama:**
- Satu SL hanya boleh punya 1 pembayaran aktif (`DIBUAT`)
**Backend Baru:**
- ✅ Satu SL hanya boleh punya 1 pembayaran aktif (`DIBUAT`)
- ✅ Cek pembayaran expired sebelum buat baru
### 10. Payment to PDAM ✅
**Backend Lama:**
- Format: `{token, data: [{rek_nomor, rek_total, serial, byr_tgl, loket}]}`
- Headers: Content-Type, Accept-Encoding, Cache-Control, Connection, Accept-Language
**Backend Baru:**
- ✅ Format sama dengan backend lama
- ✅ Headers sama dengan backend lama
- ✅ URL: `https://timo.tirtaintan.co.id/payment/{token}`
## 📋 Summary
**Semua business logic sudah sesuai dengan backend lama (timo.wipay.id):**
1. ✅ Flow pembayaran BRI (auto verify + WhatsApp)
2. ✅ Flow pembayaran QRIS (auto approve + WhatsApp)
3. ✅ Notifikasi Telegram ke admin
4. ✅ Notifikasi WhatsApp ke user
5. ✅ Kode unik untuk BRI/Manual
6. ✅ Status pembayaran
7. ✅ Expired policy
8. ✅ Validasi pembayaran
9. ✅ Payment to PDAM format
**Fitur Baru (tidak ada di backend lama):**
- ✅ QRIS payment method (< 70rb)
- ✅ QRIS status check dengan retry mechanism
- ✅ QRIS expired 30 menit