duitku/laravel 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

duitku/laravel

最新稳定版本:v2.0.0

Composer 安装命令:

composer require duitku/laravel

包简介

Duitku Payment Gateway for Laravel

README 文档

README

Tests Static Analysis PHP Version Laravel Version

SDK Laravel resmi komunitas untuk Duitku Payment Gateway — Modern, Typed, dan Production-Ready.

Apa itu SDK ini? SDK ini adalah "jembatan" antara aplikasi Laravel kamu dan Duitku. Tanpa SDK ini, kamu harus menulis kode HTTP request manual, menghitung signature sendiri, dan mengurus banyak hal teknis. Dengan SDK ini, semua itu sudah diurus — kamu tinggal panggil method-nya saja.

✨ Fitur Utama

Fitur Penjelasan
🔒 Typed DTOs Semua request & response pakai object, bukan array mentah. IDE auto-complete jalan, typo ketahuan saat coding.
🛡️ Auto Signature Signature MD5/SHA256 digenerate & divalidasi otomatis. Tidak perlu hitung hash manual.
🚀 Parallel Check Cek status 50+ transaksi dalam <1 detik pakai Http::pool.
📢 Event-Driven Handle callback pakai Laravel Events — kode lebih bersih, gampang di-test.
💸 Disbursement Transfer dana, cek saldo, verifikasi rekening — semua dari satu SDK.
Duitku POP Integrasi popup pembayaran tanpa redirect halaman.
🧪 Testable Mudah di-mock pakai Http::fake(), dibuat dengan Pest PHP.
📝 33 Payment Methods Semua metode pembayaran Duitku tersedia sebagai PHP Enum.

🚀 Quick Start (5 Menit)

Langkah 1: Install

composer require duitku/laravel

Langkah 2: Publish Config

php artisan vendor:publish --tag=duitku-config

Perintah ini akan membuat file config/duitku.php di project kamu. File ini berisi semua pengaturan yang bisa kamu ubah.

Langkah 3: Setup .env

Tambahkan kredensial Duitku kamu. Kredensial ini didapat dari Dashboard Duitku.

# Wajib
DUITKU_MERCHANT_CODE=DXXX            # Merchant Code dari dashboard Duitku
DUITKU_API_KEY=xxx...xxx              # API Key dari dashboard Duitku
DUITKU_SANDBOX_MODE=true              # true = testing, false = production

# Opsional (untuk Disbursement / Transfer Dana)
DUITKU_USER_ID=your-user-id
DUITKU_EMAIL=your-email@example.com

# Opsional (untuk HTTP & Logging)
DUITKU_TIMEOUT=30                     # Timeout request dalam detik
DUITKU_RETRY_TIMES=0                  # Jumlah retry jika gagal
DUITKU_LOG_CHANNEL=                   # Channel log Laravel (kosongkan = tidak log)

Langkah 4: Buat Pembayaran Pertamamu! 🎉

use Duitku\Laravel\Facades\Duitku;
use Duitku\Laravel\Data\PaymentRequest;

// 1. Buat request pembayaran
$request = new PaymentRequest(
    amount: 50000,                              // Nominal pembayaran (dalam Rupiah)
    merchantOrderId: 'INV-' . time(),           // ID unik untuk order ini
    productDetails: 'Topup 50 Diamonds',        // Deskripsi produk
    email: 'pelanggan@example.com',             // Email pelanggan
    paymentMethod: 'VC'                         // Metode bayar (opsional)
);

// 2. Kirim ke Duitku → dapat URL pembayaran
$response = Duitku::checkout($request);

// 3. Arahkan pelanggan ke halaman pembayaran Duitku
return redirect($response->paymentUrl);

Apa yang terjadi? Duitku akan membuat "invoice" pembayaran dan memberikan URL. Pelanggan kamu akan diarahkan ke URL tersebut untuk menyelesaikan pembayaran (transfer VA, scan QRIS, dll).

📋 Contoh Fitur Lainnya

Cek Status Transaksi

use Duitku\Laravel\Support\PaymentCode;

$status = Duitku::checkStatus('INV-123');

if ($status->statusCode === PaymentCode::SUCCESS) {
    echo "✅ Sudah dibayar!";
}

Cek Banyak Transaksi Sekaligus (Parallel) 🚀

// Cek 100 transaksi dalam < 1 detik!
$statuses = Duitku::checkStatuses(['INV-001', 'INV-002', 'INV-003']);

foreach ($statuses as $status) {
    echo "{$status->merchantOrderId}: {$status->statusCode}";
}

Handle Callback (Webhook) dengan Events

// Di Controller — cukup 1 baris!
public function callback(Request $request)
{
    Duitku::handleCallback($request->all()); // Auto validasi + dispatch event
    return response('OK');
}

// Di Listener — tangkap event pembayaran sukses
class UpdateOrderPaid
{
    public function handle(DuitkuPaymentReceived $event)
    {
        $order = Order::where('id', $event->callback->merchantOrderId)->first();
        $order->update(['status' => 'paid']);
    }
}

Duitku POP (Pembayaran Popup)

// Backend: dapatkan reference token
$response = Duitku::pop()->createTransaction($request);

// Frontend: tampilkan popup dengan Blade Component
<x-duitku-pop :reference="$response->reference" button-text="Bayar Sekarang" />

Disbursement (Transfer Dana)

// 1. Verifikasi rekening tujuan
$inquiry = Duitku::disbursement()->bankInquiry($info);
echo "Nama: " . $inquiry->accountName;

// 2. Eksekusi transfer
$transfer = Duitku::disbursement()->transfer(...);

🗺️ Kapan Pakai API vs POP?

API (Redirect) POP (Popup)
Cara Kerja Pelanggan diarahkan ke halaman Duitku Popup muncul di halaman kamu
Metode Bayar Bisa pilih satu metode spesifik Pelanggan pilih sendiri di popup
Cocok Untuk E-commerce, checkout standar SaaS, top-up, donasi
User Experience Redirect → bayar → kembali Bayar langsung tanpa pindah halaman

📖 Dokumentasi Lengkap

Dokumentasi detail tersedia di VitePress Docs:

  1. Introduction — Kenapa pakai SDK ini
  2. Installation — Instalasi step-by-step
  3. Configuration — Semua opsi konfigurasi
  4. Payments — Buat pembayaran dengan typed DTOs
  5. Duitku POP — Integrasi popup
  6. Callback System — Handle webhook
  7. Error Handling — Exception & error codes
  8. Disbursement — Transfer dana
  9. Blade Components — UI components

🧪 Testing

# Jalankan semua test
composer test

# Static analysis
./vendor/bin/phpstan analyse

🤝 Contributing

Contributions are welcome! Silakan buka Issue atau Pull Request.

📄 Lisensi

MIT License — lihat file LICENSE untuk detail.

统计信息

  • 总下载量: 5
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-27

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固