triyatna / digiflazz-laravel-4buyer
Unofficial laravel package for integrating Digiflazz API (Buyer)
Requires
- php: ^8.2
- illuminate/contracts: ^11.0 || ^12.0
- illuminate/http: ^11.0 || ^12.0
- illuminate/support: ^11.0 || ^12.0
README
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
true
diakhir 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.