Skip to content

Atualização completa

Latest
Compare
Choose a tag to compare
@caiquearaujo caiquearaujo released this 06 Jun 21:08
· 21 commits to master since this release
56f16ba

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.