chainplatform/pay 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

chainplatform/pay

Composer 安装命令:

composer require chainplatform/pay

包简介

Thư viện PHP xử lý VietQR

README 文档

README

Được chuyển PHP từ thư viện js của tác giả https://github.com/xuannghia/vietnam-qr-pay

Thư viện PHP hỗ trợ encode & 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

composer require chainplatform/pay

🧩 Encode – Tạo mã QR

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)

$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

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

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

$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 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

$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

use ChainPlatform\Pay\QRPay;
Thuộc tính Ý nghĩa
isValid Kiểm tra CRC & 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

Field Mô tả
guid GUID EMV
name VietQR / VNPay

Merchant

Field Mô tả
id Merchant ID
name Merchant Name

Consumer

Field Mô tả
bankBin Mã BIN
bankNumber STK

Additional Data

Field Mô 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ũ

$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

🪪 License

MIT © 2026 Chain Platform

💖 Support & Donate

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

Cryptocurrency Address
Bitcoin (BTC) 17grbSNSEcEybS1nHh4TGYVodBwT16cWtc
alt text
Ethereum (ETH) 0xa2fd119a619908d53928e5848b49bf1cc15689d4
alt text
Tron (TRX) TYL8p2PLCLDfq3CgGBp58WdUvvg9zsJ8pd
alt text
DOGE (DOGE) DDfKN2ys4frNaUkvPKcAdfL6SiVss5Bm19
USDT (SOLANA) cPUZsb7T9tMfiZFqXbWbRvrUktxgZQXQ2Ni1HiVXgFm

Your contribution helps maintain open-source development under the Chain Platform ecosystem 🚀

chainplatform/pay 适用场景与选型建议

chainplatform/pay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 12 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 04 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 chainplatform/pay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 chainplatform/pay 我们能提供哪些服务?
定制开发 / 二次开发

基于 chainplatform/pay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 12
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 21
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04