Histórico de mensagens sobre api pix em pix

EXIBINDO CONVERSAS RECENTES:

Texto: api pix
Canal: pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Isto, você fará este consumo somente uma vez. Sim, no PHP basta executar o exemplo que chama esta função $api->pixConfigWebhook

Avatar discord do usuario apolo3467

apolo3467

Ver Respostas

Entendi, e nesse caso eu tenho que fazer isso apenas uma vez para setar o URL? ou a cada vez que eu for gerar um pix? Eu vi aqui que eu posso usar o $api->pixConfigWebhook

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

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

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Certo. Acredito que esta falha é apresentada pelo fato de que os parâmetros informado no body, como por exemplo, Calendario, Expiracao estão com letra maiúscula.
Veja mais detalhes do exemplo da requisição em nossa documentação: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-criar-cobran-a-imediata-sem-txid-

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})
);

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

É por questões de compatibilidade com a API do BACEN. De fato não é necessário no arranjo Pix ter chave Pix para envio.

Avatar discord do usuario anoni_mato

anoni_mato

Ver Respostas

E corrigindo essa minha mensagem: eu não sou muito familiarizado com Node, mas parece que tem como, sim, validar o certificado da GN usando Node, de acordo com a documentação da GN no link abaixo (tem uma aba "Node" com código de exemplo). Mas não sei se isso é possível num ambiente controlado por terceiros como a Heroku. Em todo caso, o mtls.pix.ae permanecerá sempre gratuito. Boas almas como o <@!535222756837556244> ajudam a financiar 💟

https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-exemplos-de-configura-es-de-servidor

Avatar discord do usuario anoni_mato

anoni_mato

estranho. faz o mesmo teste cadastrando https://cardapio-api.herokuapp.com/ (sem o mtls.pix.ae). você deve receber o primeiro request de confirmação - que deveria ser respondido pelo seu servidor/app com 403 por não ter o certificado da GN para vc verificar. confere se vem com o append /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).

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).

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?

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Através do aplicativo mobile da Gerencianet, no menu lateral, toque em Pix, e então em Minhas Chaves.
E através da API, você pode listar suas chaves Pix, mas neste caso, somente as do tipo aleatória.
https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-listar-chaves-evp

Avatar discord do usuario joao_efi

joao_efi

Oi <@!468892957362225173> tudo bem? 🙂
O endpoint de "envio de pix" disponibilizado na API não será afetado. O pagamento de pix se refere aos realizados pelo próprio app da Gerencianet.

Avatar discord do usuario winkcler

winkcler

Boa noite, acabei de receber esse email a respeito dessa atualização. Hoje estou com minha api liberada para fazer pagamento via PIX por meio da API de modo automatizado. Após a atualização dessas mecanismos de segurança, irei ficar impossibilitado de fazer isso automaticamente como é hoje.