kodinus/dynamicgen-qris
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 🇮🇩
kodinus/dynamicgen-qris 适用场景与选型建议
kodinus/dynamicgen-qris 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 30 次下载、GitHub Stars 达 7, 最近一次更新时间为 2025 年 09 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 kodinus/dynamicgen-qris 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 kodinus/dynamicgen-qris 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 30
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 28
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-09-09