Histórico de mensagens sobre js em devs

EXIBINDO CONVERSAS RECENTES:

Texto: js
Data: 23/10/2024
Canal: devs
Avatar discord do usuario thefaccin

thefaccin

Ver Respostas

Alguem aqui ja fez a webhook em node.js? Poderia me dar uma mão?

Avatar discord do usuario kevencampos

kevencampos

Ver Respostas

ts
notificationRoutes.post("/notifications", (req, res) => {
const { pix } = req.body;

if (Array.isArray(pix)) {
for (const notification of pix) {
const isRecharge = notification.devolucoes;
const isSend = notification.gnExtras?.idEnvio && !notification.txid;

if (isRecharge) {
console.log("Pix recharge notification received", notification);
continue;
}

if (isSend) {
console.log("Pix send notification received", notification);
continue;
}

console.log("Pix payment notification received", notification);
}
}

res.json({ message: "Notification received" });
});
Fiz essas verificações, acredito que esteja correto, se alguém ver alguma falha e puder me dizer agradeço.

Será que realmente compensa integrar o sistema de notificação por webhook ou verificar o pagamento periodicamente usando a API de consulta de pagamento a partir do taxid?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @kevencampos! Tudo bem?
Existem algumas diferenças no JSON enviado em uma transação de Pix recebido e Pix enviado.

Primeiro, como o Rubens mencionou, você pode usar uma chave Pix para recebimento e outra para envio, usando o mesmo webhook URL. Dessa forma, ao receber a notificação, você já pode diferenciar pela chave.

Outro ponto que pode verificar é que o JSON de Pix enviado possui o parâmetro "tipo": "SOLICITACAO", além disso, tem também o parâmetro gnExtras>idEnvio.

Veja em nossa documentação alguns exemplos de JSON: https://dev.efipay.com.br/docs/api-pix/webhooks#requisi%C3%A7%C3%A3o