Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .php-cs-fixer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php
/*
* This document has been generated with
* https://mlocati.github.io/php-cs-fixer-configurator/#version:3.8.0|configurator
* you can change this configuration by importing this file.
*/
$config = new PhpCsFixer\Config();
return $config
->setIndent("\t")
->setRules([
'@PSR12' => true,
])
->setUsingCache(false)
->setFinder(
PhpCsFixer\Finder::create()
->exclude('vendor')
->in(__DIR__)
)
;
1 change: 0 additions & 1 deletion .phpunit.result.cache

This file was deleted.

5 changes: 5 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/build
/coverage
/node_modules
*.yaml
*.yml
10 changes: 10 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"printWidth": 80,
"tabWidth": 3,
"useTabs": true,
"semi": true,
"singleQuote": true,
"bracketSpacing": true,
"bracketSameLine": true,
"arrowParens": "avoid"
}
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog

## 3.0.0 - `2024-05-19`

* Não é mais compatível com PHP 7.x;
* Campos obrigatórios passaram para os construtores dos `Payloads`;
* Novos campos foram adicionados aos `Payloads` e `EMVs`;
* Demais métodos são compatíveis com a versão 2.

## 2.0.2 - `2022-06-21`

* O valor do Pix não é mais obrigatório no `StaticPayload`.
Expand Down
39 changes: 11 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![Latest Version on Packagist](https://img.shields.io/packagist/v/piggly/php-pix.svg?style=flat-square)](https://packagist.org/packages/piggly/php-pix) [![Packagist Downloads](https://img.shields.io/packagist/dt/piggly/php-pix?style=flat-square)](https://packagist.org/packages/piggly/php-pix) [![Packagist Stars](https://img.shields.io/packagist/stars/piggly/php-pix?style=flat-square)](https://packagist.org/packages/piggly/php-pix) [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE) ![PHP](https://img.shields.io/packagist/php-v/piggly/php-pix?style=flat-square)

![Versão Atual](https://img.shields.io/badge/version-2.x.x-green?style=flat-square)
![Versão Atual](https://img.shields.io/badge/version-3.x.x-green?style=flat-square)

O **Pix** é o mais novo método de pagamento eletrônico criado pelo **Banco Central do Brasil**. Você encontra todos os detalhes na [página oficial](https://www.bcb.gov.br/estabilidadefinanceira/pix) do Pix. Saiba mais como ele funciona e como nossa biblioteca trabalha [clicando aqui](https://github.com/piggly-dev/php-pix/wiki/04.-Pix).

Expand All @@ -19,34 +19,16 @@ Leia sobre a solução de problemas [clicando aqui](https://github.com/piggly-de

> Se você apreciar a função desta biblioteca e quiser apoiar este trabalho, sinta-se livre para fazer qualquer doação para a chave aleatória Pix `aae2196f-5f93-46e4-89e6-73bf4138427b` ❤.

## Atualização para a versão 2.0.0
## Atualização para a versão 3.0.0

Muitas coisas mudaram, além do suporte ao **PHP 8** os campos EMV foram otimizados e expandidos. Além disso, as requisições para APIs foram removidas e os payloads para as APIs foram reformulados. Recomendamos ler a documentação de mudanças [clicando aqui](https://github.com/piggly-dev/php-pix/wiki/11.-Migrar-para-a-vers%C3%A3o-2.x.x) e verificar as diferenças.
A versão 3 é compatível com os métodos já utilizados na versão 2. Esteja atento as diferenças antes de atualizar:

A biblioteca `chillerlan/php-qrcode` não pode ser atualizada em `composer.json`, tornando necessário utilizar a `flag` `--ignore-platform-reqs` no **PHP 8**. Veja abaixo:
* Não é mais compatível com PHP 7.x;
* Campos obrigatórios passaram para os construtores dos `Payloads`;
* Novos campos foram adicionados aos `Payloads` e `EMVs`;
* Demais métodos são compatíveis com a versão 2.

```bash
# composer install
composer --ignore-platform-req=php install

# composer update
composer --ignore-platform-req=php update

# e todos os demais comandos do composer
```

> Muitos utilizadores dessa biblioteca ainda utilizando a versão `7.2` do PHP e não é o momento ideal para perder esse suporte. A partir da versão `2.1.x` pretendemores remover esse suporte.

Para realizar as requisições da api, recomendamos a biblioteca [piggly/php-api-client](https://github.com/piggly-dev/php-api-client), ela foi desenvolvida para ser flexível e muito mais robusta que a solução anterior utilizada na versão 1.x.x.

Veja as principais mudanças da versão 2.x.x:

* O padrão EMV MPM foi atualizado e remodelado para suportar novos campos que podem ser utilizados nos Pix;
* A validação e verificação das chaves Pix foi aprimorada;
* A leitura de um código Pix resulta em um objeto de EMVs mais flexível;
* Os modificadores do payload foram removidos, sendo que agora, todos os dados preenchidos são automaticamente tratados e cortados respeitando completamente o padrão EMV;
* A classe `BaseAPI` foi removida, adotando como sugestão a biblioteca [piggly/php-api-client](https://github.com/piggly-dev/php-api-client) que traz muito mais flexibilidade e segurança;
* Os payloads para APIs foram remodelados para serem mais eficientes e flexíveis.
Para realizar as requisições da api, recomendamos a biblioteca [piggly/php-api-client](https://github.com/piggly-dev/php-api-client), ela foi desenvolvida para ser flexível e muito mais robusta que a solução anterior utilizada na versão 1.x.x. Mas você está livre para utilizar as libs que desejar.

## Instalação

Expand All @@ -66,7 +48,8 @@ Veja as principais mudanças da versão 2.x.x:
Essa bibliotecca possuí as seguintes dependências:

* [Extensão GD do PHP](https://www.php.net/manual/pt_BR/book.image.php) para gerar QR Codes;
* PHP +7.2 ou PHP +8.0.
* [Extensão MBString do PHP](https://www.php.net/manual/pt_BR/mbstring.installation.php) para manipulação de strings;
* PHP +8.0.

## Como utilizar?

Expand Down Expand Up @@ -146,4 +129,4 @@ Se você descobrir qualquer issue relacionada a segurança, por favor, envie um

## License

MIT License (MIT). Veja [LICENSE](LICENSE) para mais informações.
MIT License (MIT). Veja [LICENSE](LICENSE) para mais informações.
82 changes: 40 additions & 42 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,44 +1,42 @@
{
"name": "piggly/php-pix",
"description": "Uma biblioteca para preparar e gerar o código Pix do Banco Central do Brasil.",
"keywords": [
"piggly",
"pix",
"bcb",
"emv",
"qrcode",
"payment"
],
"type": "library",
"homepage": "https://github.com/piggly-dev/php-pix",
"autoload": {
"psr-4": {
"Piggly\\Pix\\": "src"
}
},
"suggest": {
"piggly/php-api-client": "Recomentado para criar requisições HTTP seguras e dinâmicas para as API Pix junto com os Payloads padrões."
},
"require": {
"php": "^7.2 || ^8.0",
"ext-gd": "*",
"chillerlan/php-qrcode": "^3.3"
},
"require-dev": {
"php": "^7.3 || ^8.0",
"phpunit/phpunit": "^9.5",
"fakerphp/faker": "^1.14"
},
"scripts": {
"test": "phpunit"
},
"license": "MIT",
"authors": [
{
"name": "Caique Araujo",
"email": "caique@studiopiggly.com.br",
"homepage": "https://github.com/caiquearaujo",
"role": "Developer"
}
]
"name": "piggly/php-pix",
"description": "Uma biblioteca para preparar e gerar o código Pix do Banco Central do Brasil.",
"keywords": [
"piggly",
"pix",
"bcb",
"emv",
"qrcode",
"payment"
],
"type": "library",
"homepage": "https://github.com/piggly-dev/php-pix",
"autoload": {
"psr-4": {
"Piggly\\Pix\\": "src"
}
},
"require": {
"php": "^8.0",
"ext-gd": "*",
"ext-mbstring": "*",
"chillerlan/php-qrcode": "^5.0"
},
"require-dev": {
"php": "^8.0",
"phpunit/phpunit": "^11.1",
"fakerphp/faker": "^1.23"
},
"scripts": {
"test": "phpunit"
},
"license": "MIT",
"authors": [
{
"name": "Caique Araujo",
"email": "caique@studiopiggly.com.br",
"homepage": "https://github.com/caiquearaujo",
"role": "Developer"
}
]
}
Loading
Loading