承接 takashato/laravel-vietqr 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

takashato/laravel-vietqr

Composer 安装命令:

composer require takashato/laravel-vietqr

包简介

Laravel package to generate VietQR codes for Vietnamese bank transfers (NAPAS/EMVCo standard)

README 文档

README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

Generate VietQR codes for Vietnamese bank transfers. Follows NAPAS VietQR v1.5.2 specification (EMVCo standard).

Features

  • Static & Dynamic QR - Reusable or one-time payment codes
  • Account & Card Transfers - IBFT to bank accounts or cards
  • 50+ Vietnamese Banks - Type-safe bank enum with BIN codes
  • Multiple Formats - SVG, PNG, PDF, Base64 image generation
  • Laravel Integration - Service provider, facade, Laravel 10/11/12
  • NAPAS Compliant - Verified against official specification

Requirements

  • PHP 8.2+
  • Laravel 10, 11, or 12

Installation

composer require takashato/laravel-vietqr

The package auto-registers via service provider.

Quick Start

Simple Bank Account QR (Static)

use Takashato\VietQr\VietQrCode;
use Takashato\VietQr\Enums\Bank;

// Static QR - customer enters amount
$qr = VietQrCode::bankAccount(Bank::VIETCOMBANK, '0011012345678');

// Get QR string (for your own rendering)
$qrString = $qr->build();

// Generate SVG
$svg = $qr->generateQr('svg', 300);

// Generate Base64 PNG
$base64 = $qr->generateQrBase64('png', 300);

Dynamic QR with Amount

use Takashato\VietQr\VietQrCode;
use Takashato\VietQr\Enums\Bank;

// Dynamic QR - fixed amount of 180,000 VND
$qr = VietQrCode::bankAccount(
    bank: Bank::TECHCOMBANK,
    accountNumber: '19033123456789',
    amount: 180000,
    purpose: 'Thanh toan don hang #12345'
);

echo $qr->build();

Card Transfer QR

use Takashato\VietQr\VietQrCode;
use Takashato\VietQr\Enums\Bank;

$qr = VietQrCode::bankCard(
    bank: Bank::MB_BANK,
    cardNumber: '9704229012345678',
    amount: 50000
);

Advanced Usage

Fluent Builder API

use Takashato\VietQr\VietQrCode;
use Takashato\VietQr\Data\MerchantInfo;
use Takashato\VietQr\Data\AdditionalInfo;
use Takashato\VietQr\Enums\Service;

$qr = (new VietQrCode())
    ->dynamicMethod()
    ->withMerchant(function (MerchantInfo $merchant) {
        $merchant
            ->setService(Service::NAPAS_BY_ACCOUNT)
            ->setAcquirerId('970436')  // Vietcombank BIN
            ->setMerchantId('0011012345678');
    })
    ->amount(180000)
    ->withAdditionalInfo(function (AdditionalInfo $info) {
        $info
            ->terminalLabel('POS001')
            ->purpose('Thanh toan don hang');
    })
    ->build();

Using Bank Enum

use Takashato\VietQr\Enums\Bank;

// Get bank BIN code
$bin = Bank::VIETCOMBANK->value; // '970436'

// Get bank names
$shortName = Bank::VIETCOMBANK->shortName(); // 'Vietcombank'
$fullName = Bank::VIETCOMBANK->nameVi(); // 'Ngân hàng TMCP Ngoại thương Việt Nam'

// Find bank by BIN
$bank = Bank::fromBin('970436'); // Bank::VIETCOMBANK

// Search banks
$results = Bank::search('viet'); // Returns matching Bank enums

Using Facade

use Takashato\VietQr\Facades\VietQr;

$qr = VietQr::create()
    ->staticMethod()
    ->withMerchant(...)
    ->build();

Available Banks

The Bank enum includes 50+ Vietnamese banks:

State-owned: Vietcombank, VietinBank, BIDV, Agribank

Joint-stock: Techcombank, MB Bank, ACB, VPBank, Sacombank, TPBank, HDBank, VIB, SHB, SCB, OCB, MSB, Eximbank, SeABank, LienVietPostBank, ABBank, and more...

Foreign branches: HSBC, Standard Chartered, Shinhan Bank, UOB, Woori Bank, CIMB, and more...

E-wallets: VNPT Money, CAKE, Ubank, Timo, TNEX

QR Code Types

Type Method Amount Use Case
Static staticMethod() Customer enters Store display, reusable
Dynamic dynamicMethod() Fixed in QR Invoice, one-time payment

Services

Service Enum Description
NAPAS_BY_ACCOUNT Service::NAPAS_BY_ACCOUNT Transfer to bank account
NAPAS_BY_CARD Service::NAPAS_BY_CARD Transfer to bank card
QR_CASH Service::QR_CASH ATM cash withdrawal
QR_PUSH Service::QR_PUSH Product payment

Blade Usage

{{-- SVG directly in HTML --}}
{!! VietQrCode::bankAccount(Bank::BIDV, '12345678901')->generateQr('svg', 250) !!}

{{-- Base64 image --}}
<img src="data:image/png;base64,{{ VietQrCode::bankAccount(Bank::BIDV, '12345678901')->generateQrBase64('png', 250) }}" alt="VietQR">

Documentation

Comprehensive documentation is available in the /docs directory:

Testing

composer test

Code Quality

# Format code with Pint
composer format

# Run static analysis
composer analyse

Security

For security vulnerabilities, please email takashato@gmail.com.

Credits

License

MIT License. See LICENSE.md.

takashato/laravel-vietqr 适用场景与选型建议

takashato/laravel-vietqr 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 47 次下载、GitHub Stars 达 4, 最近一次更新时间为 2022 年 12 月 21 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「laravel」 「takashato」 「laravel-vietqr」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

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

围绕 takashato/laravel-vietqr 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

  • 总下载量: 47
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 18
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-12-21