Histórico de mensagens sobre webhook pix

EXIBINDO CONVERSAS RECENTES:

Texto: webhook pix
# pix
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Olá <@!710265119547981904> ! Boa noite. Tudo bem? Sem um webhook configurado, as outras formas de saber se um PIX foi pago seria realmente consultando: GET /pix pelo txid ou GET em /cob pelo txid, (vendo se há o e2eid).

# pix
Avatar discord do usuario andlline

andlline

Ver Respostas

qual a vantagem de usar o webhook se podemos fazer uma consulta para saber se o pix foi concluído ?

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Sim. Já utilizando a SDK, você irá utiliza a função pixConfigWebhook passando como parâmetro sua chave Pix e no body webhookUrl

# pix
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Olá <@!380862703234842634> ! Boa noite. Tudo bem? Para saber se uma cobrança foi paga, existem três formas:
- Via Webhook (https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-webhooks)
- GET em /pix pelo txid (https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-consultar-pix-recebidos)
- GET em /cob pelo txid, ver se há o e2eid (https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-consultar-cobran-a)

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, <@!380862703234842634>. Como vai?
Conforme o Bruno de Lara mencionou, até o momento para testar o acionamento do webhook deve ser realizado um pagamento de um Pix, que pode ser de R$0,01

# pix
Avatar discord do usuario brunodelara

brunodelara

eles fazem a requisição no : teste.com/meuWebHook/pix

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Para definir qual URL será o seu endereço de retorno, você deverá consumir o endpoint PUT /v2/webhook/:chave_pix passando no body da requisição o parâmetro webhookUrl com sua URL.

Complementando, é importante que em seu domínio que representa o seu servidor, esteja configurado a chave pública da Gerencianet para que ocorra a autenticação mútua (mTLS).
Você encontra mais detalhes em: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-webhooks

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, <@!851565059616669729>. Boa tarde! 😀
A opção recomendada para você obter informação de que o Pix foi efetivado, é através de um webhook registrado com sua URL de notificação, para onde enviaremos as callbacks automaticamente quando for pago, por exemplo.

Outra opção é exatamente por esta função que está executando $api->pixDetailCharge($params). Se caso você não encontrou o e2eId, provavelmente o Pix não foi pago.
Pois, ao realizar esta consulta de um Pix que foi pago, no retorno conterá o array "pix" com os detalhes do pagamento e devolução, caso houver. Veja mais detalhes em nossa documentação no exemplo 2: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-consultar-cobran-a

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Ah sim, o webhook do Pix segue o padrão do BACEN, não dos demais serviços da GN.

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

js
const express = require("express");
const fs = require("fs");
const https = require("https");
const bodyParser = require("body-parser");
var logger = require('morgan');

const httpsOptions = {
cert: fs.readFileSync(""), // Certificado fullchain do SSL do dominio
key: fs.readFileSync("/"), // Chave privada do SSL do domínio
ca: fs.readFileSync(""), // Certificado público da Gerencianet. Baixe aqui: https://pix.gerencianet.com.br/webhooks/chain-pix-prod.crt
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false, //Mantenha como false para que os demais endpoints da API não rejeitem requisições sem MTLS
};

const app = express();
const httpsServer = https.createServer(httpsOptions, app);
const PORT = 443;

app.use(logger('dev')); // Comente essa linha caso não queira que seja exibido o log do servidor no seu console
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// Endpoint para configuração do webhook, você precisa cadastrar https://SEUDOMINIO.com/webhook
app.post("/webhook", (request, response) => {
// Verifica se a requisição que chegou nesse endpoint foi autorizada
if (request.socket.authorized) {
response.status(200).end();
} else {
response.status(401).end();
}
});

// Endpoind para recepção do webhook tratando o /pix
app.post("/webhook/pix", (request, response) => {
if (request.socket.authorized){
//Seu código tratando a callback
/ EXEMPLO:
var body = request.body;
filePath = __dirname + "/data.json";
fs.appendFile(filePath, JSON.stringify(body) + "\n", function (err) {
if (err) {
console.log(err);
} else {
response.status(200).end();
}
})
/
response.status(200).end();
}else{
response.status(401).end();
}
});

httpsServer.listen(PORT, () =>
console.log(Express server currently running on port ${PORT})
);

# pix
Avatar discord do usuario anoni_mato

anoni_mato

Então eles querem se certificar desde já que você tem controle sobre a validação nos requests que chegam sem o /pix, também, já que isso sinaliza que você poderia receber requests em outros endpois baseados na webhookUrl ( webhookhUrl/pix, webhookUrl/novo-recurso, etc).

# pix
Avatar discord do usuario inbox5372

inbox5372

log => 2021-06-18T13:17:33.129720+00:00 app[web.1]: rota webhook sem o /pix Request

# pix
Avatar discord do usuario inbox5372

inbox5372

async webhook ({ request, response }) {
console.log('rota webhook sem o /pix', request)
response.status(403).end()
}

async webhookPix ({ request, response }) {
console.log('rota webhook com o /pix', request)
response.status(200).end()
}

# pix
Avatar discord do usuario inbox5372

inbox5372

<@!440035527127990273> Ao tentar cadastrar o webhookUrl pelo Postman, eu recebo um request sem o append /pix e o erro HPE_INVALID_CONSTANT é exibido na mensagem

# pix
Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

resumidamente, o proxy mtls.pix.ae "derruba" a necessidade de você se preocupar com mtls. se quiser uma garantia de o request entrante é da GN, você tem alternativas:

1- enviar um request de consumo na API Pix da GN pra constatar a informação recebida;

2- anotar o IP usado pelo pix.ae nos requests que recebe e depois validar se estão vindo sempre desse mesmo IP;

3- usar uma rota com uma string aleatória menos previsível do que "/webhookpix" (e não torná-la pública).

# pix
Avatar discord do usuario inbox5372

inbox5372

Então eu não preciso da rota webhookpix POST, na verdade eu preciso apenas de uma rota webhookpix/pix POST. Correto?

# pix
Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

essa etapa 3 eu acho que não está bem descrita. o mtls.pix.ae não faz redirecionamento. ele vai repassar o request vindo da GN para https://cardapio-api.herokuapp.com/webhookpix/pix (lembre-se que a GN adiciona /pix no callback, conforme documentação do BACEN).

# pix
Avatar discord do usuario inbox5372

inbox5372

Ver Respostas

Bom dia. Tudo bem com vocês?
Estou buscando uma solução alternativa para o mTLS de um backend hospedado no Heroku.
Uso o AdonisJS.
Um prefixo na webhookUrl => https://mtls.pix.ae/cardapioo-api.herokuapp.com/webhookpix
Mas não sei qual o fluxo nesse cenário. Eu imaginava que fosse assim:
1- O GN envia o primeiro request para a webhookUrl cadastrado pelo Postman, retorna com 403;
2- Faz um novo request em https://mtls.pix.ae/cardapioo-api.herokuapp.com/webhookpix junto com o certificado;
3- Ao bater no webhookUrl com o prefixo mtps.pix.ae é direcionado para a url respondida pelo meu backend;
4- Lá encontra a rota https://cardapioo-api.herokuapp.com/webhookpix POST já pronta;
5- Eu apresento ao GN a minha parte do certificado e pronto.

Mas o que acontece na verdade é => "nome": "webhook_invalido", "mensagem": "A requisição na URL informada falhou com o erro: HPE_INVALID_CONSTANT"

Alguém pode me ajudar por favor?

# pix
Avatar discord do usuario luizcristino

luizcristino

Ver Respostas

Bom dia, estou tendo problemas com a chamada do webhook do pix ele sempre me retorna A chave informada não faz referência à conta Gerencianet autenticada