Integrando APIs com Pix e Webhooks

EXIBINDO RESPOSTAS:

Avatar discord do usuario thiagomunich

thiagomunich

Boa noite, tudo bem com vocês? Consigo gerar um QrCode, pagá-lo, e o valor cai na minha conta Gerencianet. Preciso agora consultar este pagamento pelo txid, como proceder?

Avatar discord do usuario rubenskuhl

rubenskuhl

GET /pix com body inicio=emissao da cobranca fim=agora txid=xxxxxx

Avatar discord do usuario guilherme_efi

guilherme_efi

Bom dia pessoal!
<@!375094642238029824> melhor maneira para verificar o pagamento de uma cobrança é mesmo utilizando o webhook. Com seu webhook cadastrado em sua chave, as cobranças Pix (Por enquanto, QrCode dinâmico) criadas com sua chave que estejam associados a um txid, serão notificados em sua URL.
Exemplo de notificação de um Pix pago:

[
{
"pix": [
{
"endToEndId": "E18236120202101271126s01308755CP",
"txid": "Guilhermesoarescota123456123456",
"chave": "[email protected]",
"valor": "0.01",
"horario": "2021-01-27T11:26:32.000Z"
}
]
}
]

Recebendo esta notifcação, você realiza uma busca através do txid em seu banco de dados para confirmar o pagamento da cobrança dentro do seu sistema

Avatar discord do usuario thiagomunich

thiagomunich

Obrigado pela resposta! Vou deixar salvo aqui, pois ainda estou na etapa de configurar o servidor apache de acordo com a documentação na seção webhooks

Avatar discord do usuario guilherme_efi

guilherme_efi

<@!375094642238029824> Tente seguir estes passos, que estão mais detalhados.
Primeiramente você deve acessar o arquivo de configuração do apache, geralmente fica em /etc/apache2/mods-enabled
Nele você irá fornecer o caminho da chave privada server_ssl.key.pem e uma pública server_ssl.crt.pem da sua certificadora SSL do seu domínio.

SSLCertificateFile /caminho_certificado/server_ssl.crt.pem
SSLCertificateKeyFile /caminho_certificado/server_ssl.key.pem

Neste mesmo arquivo do apache, adicione o caminho para o arquivo com a chave pública da Gerencianet para que ocorra o "Hand-Shake". Este arquivo você mesmo criará com a nossa chave (https://pix.gerencianet.com.br/webhooks/chain-pix-sandbox.crt - Produção) e salvará em um diretório de sua escolha.
SSLCACertificateFile /caminho_certificado/chain-pix-prod.crt

Se preferir deixar apenas uma rota de sua url para notificações, ex http://seudominio.com.br/webhook" class="link-msg">http://seudominio.com.br/webhook (as notificações serão enviadas para esta rota) você pode adicionar:
SSLVerifyClient none

 SSLVerifyClient require -- Indica que todas as requisições nesta rota irão requerer um certificado para o "Hand-Shake"
 SSLVerifyDepth 3

Se preferir que todas as notificações sejam enviadas para sua URL sem um subdiretório, ex http://seudominio.com.br, basta adicionar as seguintes informações
SSLVerifyClient require
SSLVerifyDepth 3

Com basicamente isto configurado no Apache, você realiza a requisição da rota PUT/v2/webhook/:chave passando no body { "webhookUrl": "http://seudominio.com.br/webhook"; } que seu webhook estará cadastrado para sua chave Pix. A partir daí, as cobranças Pix criadas com sua chave que estejam associados a um txid serão notificados em sua URL.

Avatar discord do usuario thiagomunich

thiagomunich

Ótima explicação, eu já tinha conseguido gerar a key, crt e o o chain-pix, só não estava conseguindo achar o local dentro do apache pra inseri-los! Vou tentar mais tarde e dou um feedback aqui. Mais uma vez agradeço a atenção e detalhamento da explicação!

Avatar discord do usuario guilherme_efi

guilherme_efi

Por nada! Qualquer dúvida manda aqui que lhe auxiliamos!