qapmultas/qrcode-pix

Gerador de código QR Code para o método de pagamento PIX no Brasil

v1.0 2021-09-16 14:17 UTC

This package is not auto-updated.

Last update: 2024-05-11 01:27:00 UTC


README

Classe para gerar o código usado no QR Code e como "Copia e Cola" de um PIX

Inspirado no código por Willian Costa. Possuí melhorias como suporte para mais data objects e corrige um problema no cálculo do polinômio quando o resultado é menor que 0x100.

Instalação

Via composer, execute:

composer require qapmultas/qrcode-pix

Adicione está linha de código em seu front controller ou arquivo que for usar:

require 'vendor/autoload.php';

Requisitos

  • PHP 7.1+
  • mbstring ou iconv (opcional)

Instruções de uso

Basta criar uma instância e definir seus valores:

use QapCorp\QRCodePix;

$qrcode = new QRCodePix();

// exemplo de estático
$qrcode
    ->setAmount(450) // R$ 4,50
    ->setDescription('Referente ao produto x')
    ->setMerchantCategoryCode('0000') // deve ser de acordo com o seu PSP
    ->setMerchantName('Nome do PSP') // deve ser de acordo com o seu PSP
    ->setMerchantCity('SAO PAULO') // deve ser de acordo com o seu PSP
    ->setPixKey('sua-chave-pix')
    ->setTxid('seutxid123456')
    ->setUniquePayment(true);

// exemplo de dinâmico
$qrcode
    ->setDynamic(true)
    ->setUrl('https://api.site-do-psp.com/9AED1623-219B-4FE9-9A6B-11DC72D771A6') // deve ser de acordo com o seu PSP
    ->setMerchantCategoryCode('0000') // deve ser de acordo com o seu PSP
    ->setMerchantName('Nome do PSP')
    ->setMerchantCity('SAO PAULO')
    ->setUniquePayment(true);

// usando o payload do QR code
echo $qrcode->getPayload(); // ou (string) $qrcode

A classe usa setters fluentes para definir seus valores, mas se preferir, você pode fazer as chamadas linha por linha:

// exemplo de uso não fluente
$qrcode->setAmount(450);
$qrcode->setDescription('Referente ao produto x');
$qrcode->setMerchantCategoryCode('0000');
$qrcode->setMerchantName('Nome do PSP');
$qrcode->setMerchantCity('SAO PAULO');
$qrcode->setPixKey('sua-chave-pix');
$qrcode->setTxid('seutxid123456');
$qrcode->setUniquePayment(true);

Licença de uso

Veja mais em LICENSE.