Looking to hire Laravel developers? Try LaraJobs

digiflazz-laravel-4buyer maintained by triyatna

Description
Unofficial laravel package for integrating Digiflazz API (Buyer)
Author
Last update
2025/10/06 21:11 (dev-dev-v2)
License
Downloads
193

Comments
comments powered by Disqus

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 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.