PHP - Pagamentos via PIX com o Agile4Pay

Olá Gente

A integração com o PIX da Agile4Pay não é muito conhecida, a documentação é bem fraca, e é necessário pedir a eles os dados de integração.

Porem, tem como um grande beneficio não ser necessário informar nenhuma informação do cliente.

Gerando Credenciais

Antes de começarmos, precisamos obter as credenciais para acessar a API da Agile4Pay.

Para a Agile4Pay, é necessário solicitar ao suporte da Agile4Pay seu Token de autenticação, que será enviado no padrão:

Basic PROD_XXXXXXXXXXXXXXXXXXXXXXXX

Este Token precisa ser enviado no Header das requisições através do parâmetro:

Authorization

Exemplo:

Criando Pagamento

Para criar um pagamento, via PIX, na Agile4Pay, precisamos fazer um POST para:

https://apiv1.agile4pay.com/pix/cashin

No Header, precisamos enviar as credenciais:

- Authorization: Basic PROD_XXXXXXXXXXXXXXXXXXXXXXXX

E precisamos enviar um Json similar ao Json abaixo:

{
  "amount": 1.23,
  "webhook": "https://webhook.site/74605848-c104-461b-a94f-4febba6c1bc1",
  "expiration": 360,
  "protocol": "1"
}

Onde precisamos apenas:

- amount: Definir o valor
- webhook: O link no qual o Agile4Pay ira avisar que o PIX foi Pago
- protocol: Um código para identificar o pagamento

A resposta da API, em caso de sucesso, será um "HttpCode 200" com um Json, onde, precisamos apenas dos dados:

{
  "protocol": "1",
  "emv": "XXXXXXXXX",
  "identifier": "XXXXXXXXXXXX"
}

Aqui temos:

- emv: A chave do PIX para o pagamento no estilo "Copia e Cola"

Infelizmente, a Agile4Pay não retorna um QRCode para pagamento, então precisamos criar.

Mas não se preocupe, irei mostrar como criar!

Identificando Pagamento

A Agile4Pay ira enviar as notificações, para a Url que enviamos no campo:

webhook

Em cada movimentação, o Agile4Pay ira enviar um Json para esta Url com o conteúdo similar ao conteúdo abaixo:

{
  "identifier": "XXXXXXXXXXXXXXXXX",
  "protocol": "1",
  "status": "RECEIVED",
  "amount": 1.23,
  "webhook": "https://webhook.site/74605848-c104-461b-a94f-4febba6c1bc1"
  "fee": 0.08
}

Neste Json iremos extrair os campos abaixo:

- protocol: Código da compra que informamos na criação do pagamento
- status: Status do Pagamento

Quando "status" receber "RECEIVED" indica que o pagamento foi APROVADO 💚:

{
  "status": "RECEIVED",
}

Integrando com PHP

Agora que já aprendemos como funciona, vamos fazer isto tudo funcionar via PHP?

Segue exemplo de código:

Para exibir a imagem do QRCode, podemos utilizar o serviço "Charts" da Google:

http://chart.apis.google.com/chart?cht=qr&chs=300x300&chld=H|0&chl=[CHAVE_PIX_AQUI]

Hora de dar tchau por hoje pessoal! 😊

Nos encontramos em breve. 👋