PHPackages                             majopay/qris - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. majopay/qris

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

majopay/qris
============

QRIS Dynamic Generator - Konversi QRIS statis ke dinamis dengan nominal

v1.0.0(5mo ago)024MITPHPPHP ^8.2

Since Jan 10Pushed 5mo agoCompare

[ Source](https://github.com/rhmdarif/majopay-qris)[ Packagist](https://packagist.org/packages/majopay/qris)[ RSS](/packages/majopay-qris/feed)WikiDiscussions main Synced today

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

QRIS Dynamic Generator
======================

[](#qris-dynamic-generator)

Library PHP untuk mengkonversi QRIS statis menjadi QRIS dinamis dengan nominal transaksi.

Fitur
-----

[](#fitur)

- Konversi QRIS statis ke dinamis dengan nominal
- Generate QR code image dengan template background
- Parsing QRIS dari gambar QR code
- Format mata uang Rupiah
- Validasi CRC16 otomatis

Persyaratan
-----------

[](#persyaratan)

- PHP &gt;= 8.1
- Extension GD
- Extension mbstring

Instalasi
---------

[](#instalasi)

```
composer require majopay/qris
```

Atau clone repository ini:

```
git clone https://github.com/rhmdarif/majopay-qris.git
cd majopay-qris
composer install
```

Penggunaan
----------

[](#penggunaan)

### 1. Generate QRIS Dinamis

[](#1-generate-qris-dinamis)

```
use MajopayQris\QrisGenerator;

$qrisStatis = "00020101021126570011ID.DANA..."; // QRIS statis Anda

$generator = new QrisGenerator();
$qrisDinamis = $generator
    ->setQrisData($qrisStatis)
    ->setAmount(50000) // Nominal dalam Rupiah
    ->generate();

echo $qrisDinamis;
```

### 2. Generate QR Code Image

[](#2-generate-qr-code-image)

```
use MajopayQris\QrisImageGenerator;

$imageGenerator = new QrisImageGenerator('template.jpg');

// Simpan ke file
$imagePath = $imageGenerator
    ->setOutputPath('output/qris.png')
    ->generate($qrisDinamis);

// Atau dapatkan sebagai base64
$base64 = $imageGenerator->generate($qrisDinamis);
```

### 3. Parsing QRIS dari Gambar

[](#3-parsing-qris-dari-gambar)

```
use MajopayQris\QrisParser;

// Dari file gambar
$qrisData = QrisParser::parseFromImage('qris.jpg');

// Dari base64
$qrisData = QrisParser::parseFromBase64($base64String);
```

### 4. Format Rupiah

[](#4-format-rupiah)

```
use MajopayQris\RupiahFormatter;

echo RupiahFormatter::format(50000);           // "50.000"
echo RupiahFormatter::formatWithPrefix(50000); // "Rp 50.000"

$angka = RupiahFormatter::parseToNumber("1.500.000"); // 1500000
```

Struktur Proyek
---------------

[](#struktur-proyek)

```
majopay-qris/
├── src/
│   ├── CRC16.php              # Kalkulasi checksum CRC16-CCITT
│   ├── QrisGenerator.php      # Generator QRIS dinamis
│   ├── QrisImageGenerator.php # Generator gambar QR code
│   ├── QrisParser.php         # Parser QRIS dari gambar
│   └── RupiahFormatter.php    # Utilitas format Rupiah
├── output/                    # Folder output gambar
├── composer.json
└── example.php                # Contoh penggunaan

```

Batasan
-------

[](#batasan)

- Nominal maksimal: Rp 10.000.000
- Nominal minimal: Rp 1
- Format QRIS: EMV-compliant dengan kode negara Indonesia (5802ID)

Cara Kerja
----------

[](#cara-kerja)

1. **Input**: QRIS statis (format `010211`)
2. **Proses**:
    - Hapus CRC dari QRIS statis
    - Ubah identifier dari `010211` ke `010212`
    - Sisipkan tag nominal (`54` + panjang + nilai)
    - Hitung ulang CRC16
3. **Output**: QRIS dinamis dengan nominal yang valid

Dependencies
------------

[](#dependencies)

- [chillerlan/php-qrcode](https://github.com/chillerlan/php-qrcode) - Generasi QR code
- [khanamiryan/qrcode-detector-decoder](https://github.com/khanamiryan/php-qrcode-detector-decoder) - Decoder QR code

Lisensi
-------

[](#lisensi)

MIT License

Kontribusi
----------

[](#kontribusi)

Kontribusi sangat diterima! Silakan buat pull request atau laporkan issue.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance70

Regular maintenance activity

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

174d ago

Major Versions

v0.2.0-alpha → v1.0.02026-01-10

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/65398726?v=4)[Rahmad Arif](/maintainers/rhmdarif)[@rhmdarif](https://github.com/rhmdarif)

---

Top Contributors

[![rhmdarif](https://avatars.githubusercontent.com/u/65398726?v=4)](https://github.com/rhmdarif "rhmdarif (3 commits)")

### Embed Badge

![Health badge](/badges/majopay-qris/health.svg)

```
[![Health](https://phpackages.com/badges/majopay-qris/health.svg)](https://phpackages.com/packages/majopay-qris)
```

###  Alternatives

[filament/filament

A collection of full-stack components for accelerated Laravel app development.

3829.6M3.6k](/packages/filament-filament)[kriansa/openboleto

Biblioteca para geração de boletos bancários.

6082.2M2](/packages/kriansa-openboleto)[salla/zatca

A helper to generate the QR code and signed it for ZATCA e-invoicing

164449.9k2](/packages/salla-zatca)[doppar/framework

The Doppar Framework

4012.4k14](/packages/doppar-framework)[open-southeners/laravel-companion-apps

Extend your Laravel applications with companions apps (Android, iOS, PWA...)

234.4k](/packages/open-southeners-laravel-companion-apps)[sandstorm/neostwofactorauthentication

1327.0k](/packages/sandstorm-neostwofactorauthentication)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
