Gambaran Sistem
Sistem ini menyediakan solusi backend lengkap untuk layanan PPOB (Payment Point Online Bank) termasuk pulsa, token listrik, pembayaran tagihan, dan manajemen deposit.
Database
MySQL dengan prepared statements
Keamanan
Autentikasi API Key
Real-time
Otomatisasi cron job
Transaksi
Dukungan rollback lengkap
Catatan Penting: Semua endpoint (kecuali login) memerlukan API Key untuk akses. API Key dapat diperoleh setelah login berhasil.
Autentikasi
Semua endpoint API (kecuali login) memerlukan API Key dalam header request atau parameter:
// Menggunakan HTTP Header
X-API-Key: api_key_anda_disini
// Menggunakan Query Parameter
/api/products.php?api_key=api_key_anda_disini
Tips: Untuk keamanan maksimal, gunakan API Key di HTTP Header daripada query parameter.
Endpoint API
Daftar lengkap endpoint API yang tersedia:
POST
/api/login.php
Autentikasi pengguna dan menerima API key
Parameter:
| Parameter |
Tipe |
Status |
| username_email |
string |
Wajib |
| password |
string |
Wajib |
curl -X POST panel.irstore.id/api/login.php \
-H "Content-Type: application/json" \
-d '{"username_email":"user@example.com","password":"password_anda"}'
GET
/api/products.php
Mendapatkan daftar produk yang tersedia
Autentikasi:
API Key diperlukan
curl -X GET "panel.irstore.id/api/products.php?api_key=API_KEY_ANDA"
POST
/api/transaction.php
Memproses transaksi PPOB
Parameter:
| Parameter |
Tipe |
Status |
| product_id |
string |
Wajib |
| customer_id |
string |
Wajib |
curl -X POST panel.irstore.id/api/transaction.php \
-H "Content-Type: application/json" \
-H "X-API-Key: API_KEY_ANDA" \
-d '{"product_id":"PULSA10","customer_id":"081234567890"}'
POST
/api/deposit.php
Deposit saldo ke akun
Parameter:
| Parameter |
Tipe |
Status |
| deposit_method_id |
integer |
Wajib |
| amount |
decimal |
Wajib |
curl -X POST panel.irstore.id/api/deposit.php \
-H "Content-Type: application/json" \
-H "X-API-Key: API_KEY_ANDA" \
-d '{"deposit_method_id":1,"amount":50000}'
Format Response
Semua response API mengikuti format JSON yang konsisten:
{
"success": true,
"message": "Transaksi berhasil diproses",
"data": {
// Data response bervariasi sesuai endpoint
"transaction": {
"id": 100,
"transaction_ref_id": "TRX_1623456789_1_1234",
"status": "success",
"amount": 11000
},
"new_balance": 89000
}
}
Contoh Response Error:
{
"success": false,
"message": "Saldo tidak mencukupi"
}
Kode Status HTTP: Sistem menggunakan kode status HTTP standar: 200 (sukses), 400 (bad request), 401 (unauthorized), 500 (server error).
Cron Jobs
Sistem mencakup cron job otomatis untuk rekonsiliasi transaksi:
# Cek status transaksi setiap 5 menit
*/5 * * * * php /var/www/ppob/cron/check_transactions.php >> /var/log/ppob_transactions.log
# Cek status deposit setiap 3 menit
*/3 * * * * php /var/www/ppob/cron/check_deposits.php >> /var/log/ppob_deposits.log
Status cron job: AKTIF
Fitur Otomatis: Cron job akan otomatis memperbarui status transaksi yang pending dan mengembalikan saldo jika transaksi gagal.
Skema Database
Sistem menggunakan 6 tabel utama dengan relasi yang tepat:
users (id, username, email, password, api_key, balance)
products (id, product_id, name, price, status)
transactions (id, user_id, product_id, transaction_ref_id, provider_trx_id, status, sn, amount)
balance_mutations (id, user_id, transaction_id, type, amount, description)
deposits (id, user_id, deposit_method_id, amount, status)
deposit_methods (id, name, status)
Logika Saldo: Semua perubahan saldo wajib dicatat di tabel balance_mutations. Saldo utama berada di users.balance.
Panduan Cepat
Langkah-langkah untuk memulai menggunakan API:
- Login: Dapatkan API Key dengan mengirim request ke /api/login.php
- Cek Produk: Lihat produk yang tersedia melalui /api/products.php
- Deposit: Tambah saldo melalui /api/deposit.php
- Transaksi: Lakukan transaksi PPOB melalui /api/transaction.php
- Monitoring: Pantau status transaksi melalui log atau database