digiflazz-laravel-4buyer maintained by triyatna
Laravel Digiflazz Buyer API Package
Paket Laravel untuk menghubungkan aplikasi Anda dengan API Digiflazz sebagai Buyer.
Ringkasan
Paket ini menyederhanakan integrasi API Digiflazz ke dalam Laravel, menyediakan fungsi-fungsi siap pakai yang mudah digunakan.
Fitur
- Implementasi Lengkap: Semua fungsi dari dokumentasi Digiflazz Buyer tersedia.
- Instalasi Cepat: Artisan command untuk konfigurasi otomatis.
- Penggunaan Mudah: Panggil dengan
Digiflazz::namaFungsi(). - Respons Terstruktur: Response dibungkus oleh
ResponseHandler. - Mode Uji Coba: Testing tanpa memotong saldo.
- Keamanan: Validasi signature Webhook.
Instalasi dan Konfigurasi
1. Instalasi Paket
composer require triyatna/digiflazz-laravel-4buyer
2. Setup Otomatis
php artisan ty-digiflazz:install
Perintah ini akan:
- Membuat file
config/digiflazz.php - Menambahkan entri ke file
.env
3. Konfigurasi .env
DIGIFLAZZ_USERNAME=masukkan_username_api_anda
DIGIFLAZZ_API_KEY=masukkan_api_key_anda
DIGIFLAZZ_WEBHOOK_SECRET=masukkan_secret_webhook_anda
Penting: Pastikan IP server Anda didaftarkan di panel Digiflazz bagian Atur Koneksi > API.
Info: Informasi Webhook dan tambahkan url payload di panel Digiflazz bagian Atur Koneksi > API > Atur > Webhook.
Panduan Penggunaan
Konsep Dasar
Semua fungsi dipanggil via Facade Digiflazz::... dan menghasilkan instance ResponseHandler.
Fungsi ResponseHandler:
| Fungsi | Deskripsi |
|---|---|
isSuccess() |
Transaksi sukses |
isPending() |
Transaksi diproses |
isFailed() |
Transaksi gagal |
transactionCreated() |
Transaksi tercatat |
data() |
Mengembalikan seluruh data |
get('nama_key') |
Mengambil 1 field |
getMessage() |
Mengembalikan pesan |
Contoh Penggunaan
Tambahkan ini di awal controller Anda:
use Triyatna\Digiflazz\Digiflazz;
use Illuminate\Support\Str;
1. Manajemen Akun
a. Cek Saldo
$response = Digiflazz::checkBalance();
if ($response->isSuccess()) {
return $response->get('deposit');
}
b. Tiket Deposit
$response = Digiflazz::requestDeposit(50000, 'BCA', 'Budi Santoso');
if ($response->isSuccess()) {
return [
'jumlah' => $response->get('amount'),
'berita' => $response->get('notes'),
];
}
2. Informasi Produk
a. Daftar Harga
$response = Digiflazz::getPriceList('prepaid', ['brand' => 'TELKOMSEL']);
if ($response->isSuccess()) {
return $response->data();
}
b. Cek Nama Pelanggan PLN
$response = Digiflazz::inquiryPln('1234554321');
if ($response->isSuccess()) {
return $response->get('name');
}
3. Transaksi
info: Tambahkan
truediakhir untuk mode testing, contoh:$response = Digiflazz::createPrepaidTransaction('tsel5', '081234567890', $refId, true);.
a. Prabayar
$refId = 'TRX-' . Str::uuid();
$response = Digiflazz::createPrepaidTransaction('tsel5', '081234567890', $refId);
if ($response->isSuccess()) {
// sukses
}
info: Khusus transaksi prabayar, jika ingin menambahkan opsi
max_price,cb_url,allow_dot, gunakan fitur setting dengan data array. contoh:Digiflazz::createPrepaidTransaction('PLNCEKNAMA', $data, 'TRX221221143', ['max_price' => 6]);
b. Pascabayar
1) Cek Tagihan
$refId = 'INQ-' . Str::uuid();
$response = Digiflazz::checkPostpaidBill('pln', '530000000001', $refId, true);
2) Bayar Tagihan
$response = Digiflazz::payPostpaidBill('pln', '530000000001', $refId, true);
c. Cek Status Transaksi
$response = Digiflazz::checkTransactionStatus(
'TRX-xxxxxxxx-xxxx',
'prepaid',
'tsel5',
'081234567890'
);
if ($response->isSuccess()) {
// status sukses
}
Webhook
1. Route
use App\Http\Controllers\WebhookController;
Route::post('/webhooks/digiflazz', [WebhookController::class, 'handle']);
2. Controller
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Triyatna\Digiflazz\Helpers\Webhook;
class WebhookController extends Controller
{
public function handle(Request $request)
{
$signature = $request->header('X-Hub-Signature');
$payload = $request->getContent();
$secret = config('digiflazz.webhook_secret');
if (!Webhook::validate($signature, $payload, $secret)) {
return response('Validasi gagal.', 403);
}
$data = $request->input('data');
Log::info("Webhook diterima untuk ref_id {$data['ref_id']} dengan status {$data['status']}");
return response('Webhook diterima.', 200);
}
}
🤝 Kontribusi
Kontribusi sangat disambut! Silakan buka issue atau pull request untuk:
- Laporan bug
- Perbaikan dokumentasi
📄 Lisensi
Paket ini dirilis di bawah MIT License.
🧷 Penulis
Dikembangkan oleh Triyatna.