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 que traz muito mais flexibilidade e segurança; - Os payloads para APIs foram remodelados para serem mais eficientes e flexíveis.
Classe Parser
As mudanças na classe Parser foram apenas internas.
Classe Reader
Além das otimizações internas e os métodos já existentes previamente, novos métodos foram acrescentados:
getMPM()
retorna o gerenciador de campos EMV para obter qualquer campo adicional por ID;
getPixKey()
retorna a chave Pix (se houver);
getDescription()
retorna a descrição do Pix (se houver);
getUrl()
retorna a url do Pix (se houver);
getAmount()
retorna o valor do Pix (se houver);
getMerchantName()
retorna o nome do titular do Pix (se houver);
getMerchantCity()
retorna a cidade da conta titular do Pix (se houver);
getPostalCode()
retorna o CEP da conta titular do Pix (se houver);
getTid()
retorna o ID da transação do Pix (se houver).
O método export()
vai determinar se o tipo de objeto compatível com o Pix, seja ele StaticPayload
ou DynamicPayload
. Se não for possível determinar, pela ausência do Point of Initiation Method
, a presença ou ausência da URL determinará o formato.
Classes StaticPayload
e DynamicPayload
A classe Payload
deixa de existir, tornando-se AbstractPayload
e as derivações continuam a mesma, mas com melhor separação de responsabilidades. Um DynamicPayload
pode apenas:
setUrl()
, informando a URL do Pix no SPI.
Enquanto que em StaticPayload
, é possível:
setPixKey()
para definir a chave Pix;setDescription()
para indicar a descrição do Pix;setTid() e getTid()
com o ID de transação do Pix;setAmount()
com o valor a ser pago pelo Pix.
Ambas, podem usar:
setMerchantName()
para definir o nome do titular da conta Pix;setMerchantCity()
para definir a cidade da conta titular Pix;setPostalCode()
para definir o CEP da conta titular Pix.
Mas, os dois payloads contam o campos flexíveis agora. Assim, é possível mudar a estrutura de campos, adicionar novos campos e definir todos os valores através da classe MPM
com o método:
changeMpm()
que muda a estrutura de campo do Pix.
Entretanto cada payload aplica algumas regras no método acima para manter a consistência do mesmo.
Classes de Payloads da API
A classe de envio de requisições BaseApi
foi completamente removida, ela não era flexível o bastante e exigia muitas customizações. Por conta disso, a remoção. Entretanto, deixamos como sugestão a biblioteca piggly/php-api-client, que foi projetada para ser flexível e muito mais robusta que a solução anterior.
As classes de payloads são bem intuitivas e bem fáceis de utilizar, elas foram remodeladas para melhor (claro). Será preciso readaptar seus projetos para carregar as novas classes que migraram de namespace
.