triyatna/digiflazz-laravel-4buyer

Unofficial laravel package for integrating Digiflazz API (Buyer)

1.0.0 2025-06-24 01:00 UTC

This package is auto-updated.

Last update: 2025-06-24 01:41:03 UTC


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.