kodinus/dynamicgen-qris
最新稳定版本:1.0.4
Composer 安装命令:
composer require kodinus/dynamicgen-qris
包简介
QRIS Generator & Parser (Dynamic & Static) untuk Laravel dan PHP, oleh PT Kodingin Digital Nusantara
README 文档
README
Library PHP yang powerful untuk generate, parse, dan convert QRIS (Quick Response Code Indonesian Standard). Mengikuti standar EMVCo QR dengan spesifikasi QRIS Indonesia resmi dari Bank Indonesia.
🚀 Fitur Utama
- ✅ Generate QRIS - Static dan Dynamic
- 📖 Parse QRIS - Decode string QRIS ke data terstruktur
- 🔄 Convert - Ubah Static ke Dynamic QRIS
- 🛡️ Validasi CRC - Implementasi CRC16-CCITT-FALSE
- 📊 Ekstraksi Data - Extract informasi merchant lengkap
📦 Instalasi
composer require kodinus/dynamicgen-qris
Penggunaan di Laravel
Paket ini mendukung auto-discovery sehingga Anda bisa langsung memakai Facade Qris
atau dependency injection DynamicQRISGenerator di dalam project Laravel Anda. Paket ini
kompatibel dengan Laravel 8.x hingga 11.x.
use Qris; // Facade $qris = Qris::generate($merchantData, 50000); $data = Qris::extractMerchant($qris);
🔧 Setup Awal
<?php require_once 'vendor/autoload.php'; use Kodinus\DynamicGenQris\DynamicQRISGenerator; $generator = new DynamicQRISGenerator();
📚 Dokumentasi Penggunaan
1. Generate Static QRIS
$merchantData = [ 'acquirer_domain' => 'COM.GO-JEK.WWW', 'mpan' => '936009143805979959', 'terminal_id' => 'G805979959', 'merchant_category' => 'UMI', 'nmid' => 'ID1024358806544', 'mcc' => '5411', 'merchant_name' => 'Kodingin Digital Nusantara', 'merchant_city' => 'NGAWI', 'postal_code' => '63281', ]; $staticQris = $generator->generate($merchantData); echo $staticQris;
2. Generate Dynamic QRIS
$amount = 50000; // Rp 50,000 $invoiceId = 'INV20250908001'; $merchantData['invoice_id'] = $invoiceId; $dynamicQris = $generator->generate($merchantData, $amount); echo $dynamicQris;
3. Parse QRIS String
$qrisString = "00020101021126610014COM..."; // QRIS string lengkap $parsedData = $generator->parse($qrisString); print_r($parsedData); // Output: Array berisi semua tag-value QRIS
4. Ekstraksi Data Merchant
$merchantInfo = $generator->extractMerchant($qrisString); print_r($merchantInfo); /* Output: Array ( [acquirer_domain] => COM.GO-JEK.WWW [mpan] => 936009143805979959 [merchant_name] => Kodingin Digital Nusantara [merchant_city] => NGAWI ... dst ) */
5. Convert Static ke Dynamic
$staticQris = "00020101021126610014COM..."; // Static QRIS $amount = 100000; // Rp 100,000 $newInvoice = 'INV20250908002'; $dynamicQris = $generator->convertToDynamic($staticQris, $amount, $newInvoice); echo $dynamicQris;
6. Validasi QRIS
$isValid = $generator->validateQris($qrisString); if ($isValid) { echo "✅ QRIS valid!"; } else { echo "❌ QRIS tidak valid!"; }
7. Cetak QR Code di Terminal
Untuk menampilkan QR Code langsung di terminal, instal terlebih dahulu dependensi tambahan:
composer require bacon/bacon-qr-code
Kemudian panggil metode printQrCode baik melalui instance kelas maupun Facade:
// Menggunakan instance kelas $generator->printQrCode($dynamicQris); // Atau melalui Facade di Laravel Qris::printQrCode($dynamicQris);
Metode ini akan mencetak QR Code dalam bentuk teks ASCII ke terminal.
📋 Parameter Merchant Data
Pastikan parameter Merchant Data sesuai dengan hasil pembacaan QR Code yang ada dari QRIS milik anda.
| Parameter | Tipe | Wajib | Deskripsi | Contoh |
|---|---|---|---|---|
acquirer_domain |
string | Ya | Domain acquirer/penyedia layanan | COM.GO-JEK.WWW |
mpan |
string | Ya | Merchant Primary Account Number | 936009143805979959 |
terminal_id |
string | Tidak | ID Terminal | G805979959 |
merchant_category |
string | Ya | Kategori: UMI/MID/Large | UMI |
nmid |
string | Ya | National Merchant ID | ID1024358806544 |
mcc |
string | Tidak | Merchant Category Code | 5411 |
merchant_name |
string | Ya | Nama merchant | Kodingin Digital Nusantara |
merchant_city |
string | Ya | Kota merchant | NGAWI |
postal_code |
string | Tidak | Kode pos | 63281 |
invoice_id |
string | Tidak | ID Invoice (untuk dynamic QRIS) | INV20250908001 |
🔑 Konstanta & Standar
Point of Initiation Method (PIM)
- Static QRIS:
12- Dapat digunakan berkali-kali - Dynamic QRIS:
11- Sekali pakai dengan nominal tetap
Standar Lainnya
- Currency Code:
360(Indonesian Rupiah) - Country Code:
ID(Indonesia) - Switching Domain:
ID.CO.QRIS.WWW
🛡️ Keamanan & Validasi
Library ini mengimplementasikan:
- CRC16-CCITT-FALSE untuk validasi integritas data
- Format standar EMVCo QR Code
- Spesifikasi QRIS Indonesia dari Bank Indonesia
- Validasi struktur dan format data merchant
📁 Struktur Project
kodinus/dynamicgen-qris/
├── src/
│ ├── DynamicQRISGenerator.php # Class utama
│ ├── Facades/
│ │ └── Qris.php # Laravel Facade
│ └── QrisServiceProvider.php # Laravel Service Provider
├── composer.json
├── README.md
└── LICENSE
🔗 Framework Integration
Laravel
// config/app.php 'providers' => [ Kodinus\DynamicGenQris\QrisServiceProvider::class, ], // Hanya untuk Laravel 10 kebawah 'aliases' => [ 'Qris' => Kodinus\DynamicGenQris\Facades\Qris::class, ], // Usage use Qris; $qris = Qris::generate($merchantData, 50000);
⚠️ Penting untuk Diperhatikan
Disclaimer: Library ini dibuat untuk keperluan pembelajaran, riset, dan development.
Tidak Tersedia:
- ❌ Fitur checking mutasi/callback transaksi
- ❌ Integrasi langsung dengan Payment Service Provider (PSP)
- ❌ Sistem notifikasi pembayaran real-time
Untuk Produksi:
- ✅ Gunakan QRIS resmi dari bank/PSP terpercaya
- ✅ Implementasikan sistem monitoring transaksi
- ✅ Lakukan testing menyeluruh sebelum deploy
- ✅ Patuhi regulasi Bank Indonesia terkait QRIS
🤝 Kontribusi
Kontribusi sangat welcome! Silakan:
- Fork repository ini
- Buat branch untuk fitur baru (
git checkout -b feature/amazing-feature) - Commit perubahan (
git commit -m 'Add amazing feature') - Push ke branch (
git push origin feature/amazing-feature) - Buat Pull Request
📞 Support & Bantuan
- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
- 📧 Email: halo@kodinus.id
- 📱 Whatsapp: 081216446031⚠️ Hanya pesan teks aja, tidak melayani telfon untuk menghindari penipuan!
📄 Lisensi
Dilisensikan di bawah MIT License © 2025 PT Kodingin Digital Nusantara
💰 Dukung Kami Melalui Donasi
- Bank BSI: 7308120467 a/n PT Kodingin Digital Nusantara
Dibuat dengan ❤️ di Indonesia 🇮🇩
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-09-09