234 lines
5.9 KiB
Markdown
234 lines
5.9 KiB
Markdown
# Timo Wipay API
|
|
|
|
API Application menggunakan Slim Framework 4 - Migrasi dari CodeIgniter
|
|
|
|
## Requirements
|
|
|
|
- PHP 8.1 atau lebih tinggi
|
|
- Composer
|
|
- MySQL Database: `timo` (sama dengan database timo.wipay.id)
|
|
|
|
## Installation
|
|
|
|
1. Install dependencies:
|
|
|
|
```bash
|
|
composer install
|
|
```
|
|
|
|
2. Setup environment:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
Edit file `.env` dan sesuaikan konfigurasi database jika diperlukan.
|
|
|
|
3. Generate autoload:
|
|
|
|
```bash
|
|
composer dump-autoload
|
|
```
|
|
|
|
## Konfigurasi Database
|
|
|
|
File `.env` sudah dikonfigurasi untuk menggunakan database yang sama dengan `timo.wipay.id`:
|
|
|
|
- Host: localhost
|
|
- Database: timo
|
|
- User: root
|
|
- Password: dodolgarut
|
|
|
|
## Menjalankan Aplikasi
|
|
|
|
### Development Server
|
|
|
|
```bash
|
|
composer start
|
|
```
|
|
|
|
atau
|
|
|
|
```bash
|
|
php -S localhost:8000 -t public
|
|
```
|
|
|
|
Aplikasi akan berjalan di `http://localhost:8000`
|
|
|
|
## Struktur Folder
|
|
|
|
```
|
|
timo.wipay.id_api/
|
|
├── public/ # Web root (entry point)
|
|
│ ├── index.php # Application bootstrap & routing
|
|
│ └── .htaccess # Apache rewrite rules
|
|
├── src/
|
|
│ ├── Config/ # Configuration files
|
|
│ │ └── Database.php
|
|
│ ├── Controllers/ # API Controllers
|
|
│ │ ├── AuthController.php
|
|
│ │ ├── SLController.php
|
|
│ │ └── TagihanController.php
|
|
│ ├── Models/ # Database Models
|
|
│ │ ├── UserModel.php
|
|
│ │ └── SLModel.php
|
|
│ ├── Services/ # Business Logic Services
|
|
│ ├── Helpers/ # Helper functions
|
|
│ │ ├── ResponseHelper.php
|
|
│ │ ├── HttpHelper.php
|
|
│ │ └── functions.php
|
|
│ └── Middleware/ # Middleware (jika diperlukan)
|
|
├── logs/ # Application logs
|
|
├── vendor/ # Composer dependencies
|
|
├── .env # Environment configuration
|
|
├── .env.example # Environment template
|
|
└── composer.json # Dependencies configuration
|
|
```
|
|
|
|
## Endpoints yang Tersedia
|
|
|
|
### Authentication
|
|
|
|
- `POST /timo/daftar` - Registrasi user baru
|
|
- `POST /timo/login` - Login dengan username & password
|
|
- `POST /timo/login_token` - Login dengan password sudah di-hash
|
|
- `POST /timo/update_akun` - Update data akun
|
|
- `POST /timo/update_password` - Update password
|
|
|
|
### SL (Service Line) Management
|
|
|
|
- `POST /timo/cek_sl` - Cek validitas nomor SL
|
|
- `POST /timo/confirm_sl` - Konfirmasi dan daftarkan SL
|
|
- `POST /timo/hapus_sl` - Hapus SL dari akun
|
|
|
|
### Tagihan
|
|
|
|
- `GET /timo/history/{sl}/{periode}` - History tagihan
|
|
- `GET /timo/tagihan/{sl}` - Data tagihan berdasarkan SL
|
|
|
|
### Pembayaran
|
|
|
|
- `POST /timo/request_pembayaran` - Request pembayaran tagihan
|
|
- `POST /timo/cek_pembayaran` - Cek status pembayaran
|
|
- `POST /timo/cek_transfer` - Cek transfer pembayaran
|
|
- `POST /timo/batal_pembayaran` - Batalkan pembayaran
|
|
- `POST /timo/confirm_pembayaran` - Konfirmasi pembayaran
|
|
- `POST /timo/history_bayar` - History pembayaran (status DIBAYAR)
|
|
|
|
### Laporan
|
|
|
|
- `POST /timo/jenis_laporan` - Daftar jenis laporan gangguan
|
|
- `POST /timo/history_gangguan` - History laporan gangguan user
|
|
|
|
### WIPAY
|
|
|
|
- `POST /timo/cek_wipay` - Cek saldo WIPAY
|
|
|
|
### Reset Password
|
|
|
|
- `POST /timo/buat_kode` - Buat kode verifikasi reset password
|
|
- `POST /timo/cek_kode` - Cek validitas kode verifikasi
|
|
- `POST /timo/reset_kode` - Reset password dengan kode verifikasi
|
|
|
|
### Upload
|
|
|
|
- `POST /timo/upload_catat_meter` - Upload foto catat meter (base64)
|
|
- `POST /timo/upload_pp` - Upload foto profil (base64)
|
|
- `POST /timo/hapus_pp` - Hapus foto profil
|
|
- `POST /timo/upload_gangguan` - Upload laporan gangguan (base64)
|
|
- `POST /timo/upload_pasang_baru` - Upload permintaan pasang baru (base64)
|
|
- `POST /timo/upload_bukti_transfer` - Upload bukti transfer (base64)
|
|
- `POST /timo/upload_baca_mandiri` - Upload hasil baca mandiri
|
|
|
|
### Lainnya
|
|
|
|
- `POST /timo/promo` - Daftar promo aktif
|
|
- `POST /timo/riwayat_pasang` - Riwayat pasang baru
|
|
- `POST /timo/jadwal_catat_meter` - Jadwal catat meter
|
|
- `POST /timo/request_order_baca_mandiri` - Request order baca mandiri
|
|
|
|
### Utility
|
|
|
|
- `GET /` - Welcome message dengan daftar endpoints
|
|
- `GET /health` - Health check endpoint
|
|
|
|
## Format Response
|
|
|
|
### Success Response
|
|
|
|
```json
|
|
{
|
|
"status": 200,
|
|
"pesan": "Message (optional)",
|
|
"data": {}
|
|
}
|
|
```
|
|
|
|
### Error Response
|
|
|
|
```json
|
|
{
|
|
"status": 404,
|
|
"pesan": "Error message"
|
|
}
|
|
```
|
|
|
|
## Contoh Penggunaan
|
|
|
|
### Login
|
|
|
|
```bash
|
|
curl -X POST http://localhost:8000/timo/login \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"username": "testuser",
|
|
"password": "password123",
|
|
"fcm_token": "optional_fcm_token"
|
|
}'
|
|
```
|
|
|
|
### Cek SL
|
|
|
|
```bash
|
|
curl -X POST http://localhost:8000/timo/cek_sl \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"token": "user_id",
|
|
"no_sl": "123456"
|
|
}'
|
|
```
|
|
|
|
### Get Tagihan
|
|
|
|
```bash
|
|
curl http://localhost:8000/timo/tagihan/123456
|
|
```
|
|
|
|
## Catatan
|
|
|
|
- API ini menggunakan database yang sama dengan `timo.wipay.id`
|
|
- Semua endpoint menggunakan format JSON
|
|
- CORS sudah diaktifkan untuk cross-origin requests
|
|
- Log aplikasi tersimpan di folder `logs/app.log`
|
|
|
|
## Development
|
|
|
|
Untuk menambahkan endpoint baru:
|
|
|
|
1. Buat Controller di `src/Controllers/`
|
|
2. Buat Model jika diperlukan di `src/Models/`
|
|
3. Tambahkan route di `public/index.php`
|
|
4. Update dokumentasi ini
|
|
|
|
## Migration Status
|
|
|
|
✅ Authentication endpoints (daftar, login, login_token, update_akun, update_password)
|
|
✅ SL Management endpoints (cek_sl, confirm_sl, hapus_sl)
|
|
✅ Tagihan endpoints (history, tagihan)
|
|
✅ Pembayaran endpoints (request_pembayaran, cek_pembayaran, cek_transfer, batal_pembayaran, confirm_pembayaran, history_bayar)
|
|
✅ Laporan endpoints (jenis_laporan, history_gangguan)
|
|
✅ WIPAY endpoints (cek_wipay)
|
|
✅ Reset Password endpoints (buat_kode, cek_kode, reset_kode)
|
|
✅ Other endpoints (promo, riwayat_pasang, jadwal_catat_meter, request_order_baca_mandiri)
|
|
✅ Upload endpoints (upload_catat_meter, upload_pp, hapus_pp, upload_gangguan, upload_pasang_baru, upload_bukti_transfer, upload_baca_mandiri)
|