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(7mo ago)026MITPHPPHP ^8.2

Since Jan 10Pushed 7mo agoCompare

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

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

34

—

LowBetter than 74% of packages

Maintenance64

Regular maintenance activity

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

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

220d 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

[appwrite/server-ce

End to end backend server for frontend and mobile apps.

56.9k115.4k](/packages/appwrite-server-ce)[filament/filament

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

3932.5M4.3k](/packages/filament-filament)[salla/zatca

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

165463.2k2](/packages/salla-zatca)[abydahana/aksara

Aksara is a modern, developer-friendly framework and CMS built on CodeIgniter 4, featuring rapid CRUD development, modular architecture, smart routing, flexible access control, API integration, and an AI assistant to make content management faster and smarter.

1141.2k](/packages/abydahana-aksara)[skeeks/cms-shop

Интернет магазин для SkeekS CMS

145.9k25](/packages/skeeks-cms-shop)[doppar/framework

The Doppar Framework

4112.6k14](/packages/doppar-framework)

PHPackages © 2026

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