Sistem API PPOB

Backend Services - Siap Produksi

Sistem gateway pembayaran berkinerja tinggi dengan pemrosesan transaksi real-time, manajemen saldo, dan rekonsiliasi otomatis.

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:

  1. Login: Dapatkan API Key dengan mengirim request ke /api/login.php
  2. Cek Produk: Lihat produk yang tersedia melalui /api/products.php
  3. Deposit: Tambah saldo melalui /api/deposit.php
  4. Transaksi: Lakukan transaksi PPOB melalui /api/transaction.php
  5. Monitoring: Pantau status transaksi melalui log atau database