modularavel/larapix 问题修复 & 功能扩展

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

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

modularavel/larapix

Composer 安装命令:

composer require modularavel/larapix

包简介

Gerar QRCODE e chave copia e cola com valor definido para pagamentos via PIX!

README 文档

README

Larapix - Pagamentos PIX para Laravel

modularavel/larapix

Gere QR Codes e códigos PIX copia e cola para pagamentos instantâneos no Laravel.

Versão no Packagist Status dos Testes Code Style Total de Downloads Licença MIT PHP ^8.1 Laravel 10|11|12

📖 Sobre

Larapix é um pacote Laravel elegante e minimalista para gerar pagamentos PIX de forma programática. Com uma interface fluente e intuitiva, você pode criar códigos copia e cola e QR Codes prontos para uso em segundos.

⚡ Principais Funcionalidades

Funcionalidade Descrição
🔑 Código Copia e Cola Gera o payload PIX completo conforme especificação BACEN
📱 QR Code PNG Gera imagem QR Code pronta para exibição
🧹 Sanitização Automática Remove acentos e caracteres especiais da cidade automaticamente
⛓️ Interface Fluente API encadeável e expressiva
🏭 Facade Acesso simplificado via Larapix::cobrar()
⚙️ Configurável Valores padrão via .env ou config
🖼️ View Blade Template responsivo pronto para uso
CRC16-CCITT Checksum conforme padrão do Banco Central

📦 Instalação

Instale o pacote via Composer:

composer require modularavel/larapix

Publique o arquivo de configuração:

php artisan vendor:publish --tag="larapix-config"

Opcionalmente, publique as views:

php artisan vendor:publish --tag="larapix-views"

⚙️ Configuração

Após publicar o config, edite config/larapix.php:

return [
    // Chave PIX (CPF, CNPJ, e-mail, telefone ou aleatória)
    'chave_pix' => env('LARAPIX_CHAVE_PIX'),

    // Nome completo do titular da conta
    'nome_do_titular' => env('LARAPIX_NOME_DO_TITULAR'),

    // Cidade do titular (acentos são removidos automaticamente)
    'cidade_do_titular' => env('LARAPIX_CIDADE_DO_TITULAR'),

    // Valor padrão da transação em reais
    'valor' => env('LARAPIX_VALOR', 0),

    // Descrição padrão do pagamento
    'descricao' => env('LARAPIX_DESCRICAO'),

    // Identificador único da transação (TXID)
    'id_transacao' => env('LARAPIX_ID_TRANSACAO'),
];

🔐 Variáveis de Ambiente (.env)

LARAPIX_CHAVE_PIX=seu-cpf-cnpj-email-ou-chave
LARAPIX_NOME_DO_TITULAR=Seu Nome Completo
LARAPIX_CIDADE_DO_TITULAR=SAO PAULO
LARAPIX_VALOR=0
LARAPIX_DESCRICAO=
LARAPIX_ID_TRANSACAO=

🚀 Uso

Uso Básico — Interface Fluente

use Modularavel\Larapix\Larapix;

$pix = (new Larapix())
    ->chavePix('12345678909')
    ->nomeDoTitularDaConta('João da Silva')
    ->cidadeDoTitularDaConta('São Paulo') // acentos removidos automaticamente
    ->valor(150.00)
    ->descricao('Pagamento de serviço')
    ->txid('PEDIDO-001');

// Gerar código copia e cola
$codigo = $pix->gerarCodigoDePagamento();

// Gerar imagem QR Code (PNG)
$qrCodePng = $pix->gerarQRCodeDePagamento($codigo);

Uso com Facade

use Modularavel\Larapix\Facades\Larapix;

$pix = Larapix::cobrar(
    valor: 99.90,
    chavePix: '11999998888',
    nomeDoTitularDaConta: 'Maria Souza',
    cidadeDoTitularDaConta: 'Uberlândia',
    descricao: 'Assinatura mensal',
    txid: 'SUB-2025-001'
);

$codigo = $pix->gerarCodigoDePagamento();
$qrCode = $pix->gerarQRCodeDePagamento($codigo);

Uso com Valores do Config

// Usa os valores definidos em config/larapix.php
$pix = new Larapix();
$codigo = $pix->valor(50.00)->txid('TX-123')->gerarCodigoDePagamento();

Exibir QR Code em uma View Blade

// No controller
$pix = Larapix::cobrar(valor: 75.00, descricao: 'Produto X');
$codigo = $pix->gerarCodigoDePagamento();
$qrCode = $pix->gerarQRCodeDePagamento($codigo);

return view('larapix::pix-qrcode', [
    'image' => $qrCode,
    'codigo' => $codigo,
]);

Salvar QR Code em Arquivo

$pix = (new Larapix())
    ->chavePix('98765432100')
    ->nomeDoTitularDaConta('Empresa LTDA')
    ->cidadeDoTitularDaConta('Curitiba')
    ->valor(500.00);

$codigo = $pix->gerarCodigoDePagamento();
$imagemPng = $pix->gerarQRCodeDePagamento($codigo);

file_put_contents(storage_path('app/qrcode-pix.png'), $imagemPng);

QR Code com Largura Personalizada

use Mpdf\QrCode\Output\Png;

$qrCode = $pix->gerarQRCodeDePagamento($codigo, Png::class, 800); // 800px

🧹 Sanitização da Cidade

O campo cidadeDoTitularDaConta é sanitizado automaticamente:

Entrada Resultado
São Paulo Sao Paulo
Florianópolis Florianopolis
Açailândia Acailandia
Rio de Janeiro!@# Rio de Janeiro
Goiânia Goiania
null '' (vazio)

Não é necessário tratar manualmente — o pacote cuida disso para você.

🧪 Testes

O pacote conta com 57 testes e 79 assertions usando Pest PHP:

composer test

Cobertura dos testes:

  • ✅ Interface fluente (todos os setters)
  • ✅ Sanitização de cidade (13 cenários)
  • ✅ Formatação de valor
  • ✅ Tratamento de null
  • ✅ Estrutura do payload PIX
  • ✅ CRC16 (consistência e unicidade)
  • ✅ Geração de QR Code
  • ✅ Prioridade config vs parâmetro
  • ✅ Tipos inteiros no cobrar()
  • ✅ Encadeamento completo

📐 Estrutura do Payload PIX

O código gerado segue a especificação EMVCo / BACEN:

┌─────────────────────────────────────────────────────────────┐
│ 00 │ Payload Format Indicator (01)                          │
│ 26 │ Merchant Account Information                           │
│    ├── 00 │ GUI (br.gov.bcb.pix)                           │
│    ├── 01 │ Chave PIX                                      │
│    └── 02 │ Descrição (opcional)                           │
│ 52 │ Merchant Category Code (0000)                          │
│ 53 │ Transaction Currency (986 = BRL)                       │
│ 54 │ Transaction Amount                                     │
│ 58 │ Country Code (BR)                                      │
│ 59 │ Merchant Name                                          │
│ 60 │ Merchant City                                          │
│ 62 │ Additional Data Field                                  │
│    └── 05 │ TXID                                           │
│ 63 │ CRC16 (checksum)                                       │
└─────────────────────────────────────────────────────────────┘

📁 Estrutura do Pacote

larapix/
├── config/
│   └── larapix.php              # Configurações do pacote
├── resources/views/
│   └── pix-qrcode.blade.php     # View com QR Code (Bootstrap 5)
├── routes/
│   └── web.php                  # Rota de exemplo
├── src/
│   ├── Constants/
│   │   └── Constants.php        # IDs dos campos do payload
│   ├── Contracts/
│   │   └── LarapixInterface.php # Interface do contrato
│   ├── Facades/
│   │   └── Larapix.php          # Facade Laravel
│   ├── Larapix.php              # Classe principal
│   └── LarapixServiceProvider.php
└── tests/
    ├── LarapixTest.php          # 56 testes funcionais
    ├── ArchTest.php             # Testes de arquitetura
    └── ...

🔗 Requisitos

Requisito Versão
PHP ^8.1
Laravel 10.x / 11.x / 12.x
ext-intl Requerido (para Normalizer)
ext-mbstring Requerido
mpdf/qrcode ^1.2

📋 Changelog

Veja CHANGELOG.md para detalhes sobre as mudanças em cada versão.

🤝 Contribuindo

Contribuições são bem-vindas! Por favor, veja CONTRIBUTING.md para detalhes.

# Clonar o repositório
git clone https://github.com/modularavel/larapix.git
cd larapix

# Instalar dependências
composer install

# Rodar testes
composer test

# Formatar código
composer format

# Análise estática
composer analyse

🔒 Vulnerabilidades de Segurança

Para reportar vulnerabilidades de segurança, consulte nossa política de segurança.

👨‍💻 Autor

Casimiro Rocha
Casimiro Rocha

📧 casimiroaf@gmail.com

📜 Licença

Este projeto é licenciado sob a Licença MIT — veja o arquivo LICENSE.md para detalhes.

🌟 Apoie o Projeto

Se este pacote foi útil para você, considere dar uma ⭐ no repositório!

Feito com ❤️ por Modularavel

Versão atual: 1.2.0

modularavel/larapix 适用场景与选型建议

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

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

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

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

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-01-15