PHPackages                             chainplatform/pay - 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. [Payment Processing](/categories/payments)
4. /
5. chainplatform/pay

ActiveLibrary[Payment Processing](/categories/payments)

chainplatform/pay
=================

Thư viện PHP xử lý VietQR

1.0.4(4mo ago)110MITPHPPHP &gt;=7.4

Since Jan 4Pushed 4mo agoCompare

[ Source](https://github.com/ChainPlatform/vietnam-qr-pay)[ Packagist](https://packagist.org/packages/chainplatform/pay)[ RSS](/packages/chainplatform-pay/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)DependenciesVersions (6)Used By (0)

PHP ChainPlatform/Pay – Vietnam QR Pay (VietQR • MoMo • ZaloPay • VNPay)
========================================================================

[](#php-chainplatformpay--vietnam-qr-pay-vietqr--momo--zalopay--vnpay)

Được chuyển PHP từ thư viện js của tác giả

Thư viện PHP hỗ trợ **encode &amp; decode** mã QR thanh toán theo chuẩn EMVCo dành cho:

- **VietQR (NAPAS 247 – QR Ngân hàng)**
- **QR Đa năng MoMo**
- **QR Đa năng ZaloPay**
- **VNPayQR**
- Tạo payload EMV • Validate CRC16 • Sinh QR Image

Được viết dựa trên chuẩn VietQR và ví dụ từ các ví điện tử Việt Nam.

---

⚙️ Cài đặt
----------

[](#️-cài-đặt)

```
composer require chainplatform/pay
```

---

🧩 Encode – Tạo mã QR
--------------------

[](#-encode--tạo-mã-qr)

1) VietQR TĨNH (không có số tiền)
---------------------------------

[](#1-vietqr-tĩnh-không-có-số-tiền)

```
use ChainPlatform\Pay\QRPay;
use ChainPlatform\Pay\BanksObject;

$qrPay = QRPay::initVietQR([
    'bankBin' => BanksObject::acb()->bin,
    'bankNumber' => '257678859',
]);

$content = $qrPay->build();

echo $content;
// 00020101021138530010A0000007270123000697041601092576788590208QRIBFTTA53037045802VN6304AE9F
```

---

2) VietQR ĐỘNG (có số tiền + nội dung)
--------------------------------------

[](#2-vietqr-động-có-số-tiền--nội-dung)

```
$qrPay = QRPay::initVietQR([
    'bankBin' => BanksObject::mbbank()->bin,
    'bankNumber' => '88787627133',
    'amount' => '10000',
    'purpose' => 'Chuyen tien',
]);

$content = $qrPay->build();

echo $content;
// 00020101021238530010A0000007270123000697041601092576788590208QRIBFTTA53037045405100005802VN62150811Chuyen tien630453E6
```

---

3) QR Đa năng MoMo
------------------

[](#3-qr-đa-năng-momo)

MoMo sử dụng số tài khoản nội bộ tại BVBank để nhận tiền từ VietQR.

```
use ChainPlatform\Pay\QRPay;
use ChainPlatform\Pay\BanksObject;

$accountNumber = '99MM24011M34875080';

$momoQR = QRPay::initVietQR([
    'bankBin' => BanksObject::banviet()->bin,
    'bankNumber' => $accountNumber,
]);

// Mã tham chiếu riêng của MoMo
$momoQR->additionalData->reference = 'MOMOW2W' . substr($accountNumber, 10);

// Trường ID 80 = 3 số cuối số điện thoại
$momoQR->setUnreservedField('80', '046');

echo $momoQR->build();
```

Ví dụ output:

```
00020101021138620010A00000072701320006970454011899MM24011M348750800208QRIBFTTA53037045802VN62190515MOMOW2W3487508080030466304EBC8

```

---

4) QR Đa năng ZaloPay
---------------------

[](#4-qr-đa-năng-zalopay)

ZaloPay cũng dùng tài khoản BVBank để định tuyến.

```
$accountNumber = '99ZP24009M07248267';

$zaloQR = QRPay::initVietQR([
    'bankBin' => BanksObject::banviet()->bin,
    'bankNumber' => $accountNumber,
]);

echo $zaloQR->build();
```

Ví dụ output:

```
00020101021138620010A00000072701320006970454011899ZP24009M072482670208QRIBFTTA53037045802VN6304073C

```

---

5) Tạo QR VNPay
---------------

[](#5-tạo-qr-vnpay)

```
$qrPay = QRPay::initVNPayQR([
    'merchantId' => '0102154778',
    'merchantName' => 'TUGIACOMPANY',
    'store' => 'TU GIA COMPUTER',
    'terminal' => 'TUGIACO1',
]);

echo $qrPay->build();
```

Output mẫu:

```
00020101021126280010A0000007750110010531314453037045408210900005802VN5910CELLPHONES62600312CPSHN ONLINE0517021908061613127850705ONLHN0810CellphoneS63047685

```

---

🧭 Decode – Phân tích nội dung QR
================================

[](#-decode--phân-tích-nội-dung-qr)

Decode VietQR
-------------

[](#decode-vietqr)

```
$qrContent = '00020101021238530010A0000007270123000697041601092576788590208QRIBFTTA5303704540410005802VN62150811Chuyen tien6304BBB8';

$qrPay = new QRPay($qrContent);

$qrPay->isValid;                // true
$qrPay->provider->name;         // VIETQR
$qrPay->consumer->bankBin;      // 970416
$qrPay->consumer->bankNumber;   // 257678859
$qrPay->amount;                 // 1000
$qrPay->additionalData->purpose // Chuyen tien
```

---

Decode VNPAY
------------

[](#decode-vnpay)

```
$qrContent = '00020101021126280010A0000007750110010531314453037045408210900005802VN5910CELLPHONES62600312CPSHN ONLINE0517021908061613127850705ONLHN0810CellphoneS63047685';

$qrPay = new QRPay($qrContent);

$qrPay->isValid;                   // true
$qrPay->provider->name;            // VNPAY
$qrPay->merchant->merchantId;      // 0105313144
$qrPay->amount;                    // 21090000
$qrPay->additionalData->store;     // CPSHN ONLINE
$qrPay->additionalData->terminal;  // ONLHN
$qrPay->additionalData->purpose;   // CellphoneS
$qrPay->additionalData->reference; // 02190806161312785
```

---

🧱 QRPay Class
=============

[](#-qrpay-class)

```
use ChainPlatform\Pay\QRPay;
```

Thuộc tínhÝ nghĩa`isValid`Kiểm tra CRC &amp; chuẩn EMV`initMethod`11 = tĩnh, 12 = động`provider`VietQR / VNPAY`merchant`Thông tin merchant`consumer`Thông tin người trả`amount`Số tiền`currency`704 = VND`nation`VN`additionalData`Thông tin bổ sung`crc`Mã checksum`build()`Tạo lại QR---

### Provider

[](#provider)

FieldMô tả`guid`GUID EMV`name`VietQR / VNPay### Merchant

[](#merchant)

FieldMô tả`id`Merchant ID`name`Merchant Name### Consumer

[](#consumer)

FieldMô tả`bankBin`Mã BIN`bankNumber`STK### Additional Data

[](#additional-data)

FieldMô tả`billNumber`Số hóa đơn`mobileNumber`SĐT`store`Tên cửa hàng`loyaltyNumber`Mã khách hàng thân thiết`reference`Mã tham chiếu`customerLabel`Label`terminal`POS`purpose`Nội dung---

🔧 Build QR mới từ QR cũ
=======================

[](#-build-qr-mới-từ-qr-cũ)

```
$qrPay = new QRPay($originalContent);

// Sửa thông tin
$qrPay->amount = '10000';
$qrPay->additionalData->purpose = 'Cam on nhe - thu vien tao ma thanh toan QRPay tren PHP';

// Build lại
$newQR = $qrPay->build();

// Output
/*
00020101021238550010A000000727012500069704220111887876271330208QRIBFTTA53037045405100005802VN62580854Cam on nhe - thu vien tao ma thanh toan QRPay tren PHP6304EC87
*/
```

[![alt text](qr.png)](qr.png)

---

🪪 License
---------

[](#-license)

MIT © 2026 [Chain Platform](https://chainplatform.net)

---

💖 Support &amp; Donate
----------------------

[](#-support--donate)

If you find this package helpful, consider supporting the development:

CryptocurrencyAddress**Bitcoin (BTC)**`17grbSNSEcEybS1nHh4TGYVodBwT16cWtc`[![alt text](image-1.png)](image-1.png)**Ethereum (ETH)**`0xa2fd119a619908d53928e5848b49bf1cc15689d4`[![alt text](image-2.png)](image-2.png)**Tron (TRX)**`TYL8p2PLCLDfq3CgGBp58WdUvvg9zsJ8pd`[![alt text](image.png)](image.png)**DOGE (DOGE)**`DDfKN2ys4frNaUkvPKcAdfL6SiVss5Bm19`**USDT (SOLANA)**`cPUZsb7T9tMfiZFqXbWbRvrUktxgZQXQ2Ni1HiVXgFm`Your contribution helps maintain open-source development under the Chain Platform ecosystem 🚀

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance75

Regular maintenance activity

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 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

5

Last Release

134d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/edb45ff6b5ebc05336c1f5071f6fcd3c7a34513dbf4e277914650abb4a97076f?d=identicon)[ChainPlatform](/maintainers/ChainPlatform)

---

Top Contributors

[![ChainPlatform](https://avatars.githubusercontent.com/u/175676590?v=4)](https://github.com/ChainPlatform "ChainPlatform (12 commits)")

### Embed Badge

![Health badge](/badges/chainplatform-pay/health.svg)

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

###  Alternatives

[omnipay/paypal

PayPal gateway for Omnipay payment processing library

3156.8M53](/packages/omnipay-paypal)[eduardokum/laravel-boleto

Biblioteca com boletos para o laravel

626351.9k2](/packages/eduardokum-laravel-boleto)[tbbc/money-bundle

This is a Symfony bundle that integrates moneyphp/money library (Fowler pattern): https://github.com/moneyphp/money.

1961.9M](/packages/tbbc-money-bundle)[2checkout/2checkout-php

2Checkout PHP Library

83740.3k2](/packages/2checkout-2checkout-php)[smhg/sepa-qr-data

Generate QR code data for SEPA payments

61717.2k5](/packages/smhg-sepa-qr-data)[omnipay/dummy

Dummy driver for the Omnipay payment processing library

271.2M33](/packages/omnipay-dummy)

PHPackages © 2026

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