Histórico de mensagens sobre url em pix

EXIBINDO CONVERSAS RECENTES:

Texto: url
Canal: pix
Avatar discord do usuario joao_efi

joao_efi

Ver Respostas

Fala <@!728929518344994836> ! tudo ótimo por aqui!
Verifiquei aqui e essa falha pode estar acontecendo por conta de algum módulo de um repositório com um certificado SSL incompatível com os demais.
Atualizei nossa documentação também pois notei que o body-parser está "depreciado" e as funções foram incorporadas ao express, dessa forma pode remover a linha
const bodyParser = require("body-parser");
E substituir o trecho:

js
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
Por:
js
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
E veja se funciona para você!

Caso a falha persista, você pode contornar esse problema utilizando o comando:
npm config set strict-ssl false
Lembrando de defini-lo como true posteriormente, para que você não instale acidentalmente um módulo não confiável no qual você realmente não confia.

Avatar discord do usuario leonardo_apereira

leonardo_apereira

Ver Respostas

Beleza! Tudo bem? <@!795645731385901076>

Obrigado pela ajuda, segue:

const express = require("express");
const app = express();
const { WebhookClient } = require("dialogflow-fulfillment");
const bodyParser = require("body-parser");
const mysql = require ('mysql');
var logger = require('morgan');

////////////////// HTTPS
const fs = require("fs");
const https = require("https");
const options = {
key: fs.readFileSync("key.pem"),
cert: fs.readFileSync("cert.crt"),
ca: fs.readFileSync("chain-pix-prod.crt"),
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false
};
///////////////// HTTPS (FIM)

app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static("public"));


////////////////// GERENCIANET (PIX)
app.post("/gerencianet", (request, response) => {
console.log('Entrou gerencia-net');
response.status(200).end();
// 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("/gerencianet/pix", (request, response) => {
response.status(200).end();
console.log('Entrou gerencia-net');
if (request.socket.authorized){
var body = request.body;
console.log(body);
response.status(200).end();
}else{
response.status(401).end();
}
});
//////////////////GERENCIANET - FIM(PIX)

//////////////////////////// HTTPS
https.createServer(options, app).listen(8000);
console.log('Servido NODE (HTTPS) na Porta: 8000!');
/////////////////////////// HTTPS

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O exemplo da consultoria da Gerencianet para Express é assim:

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 dominio
key: fs.readFileSync("/"), // Chave privada do domínio
ca: fs.readFileSync(""), // Certificado público da Gerencianet
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();
}
});

Avatar discord do usuario leonardo_apereira

leonardo_apereira

Ver Respostas

Quando peço para configurar o webhook, ele esta me retornando:

"nome":"webhook_invalido",
"mensagem":"A requisição na URL informada falhou com o erro: UNABLE_TO_VERIFY_LEAF_SIGNATURE"

Fiz por nodejs, esta funcionando o https e salvei o certificado .. será que precisa fazer a configuração no Apache tb?

Acho que tem algo a ver com minha configuração:
npm config ls -l

Mas não consegui identificar

Avatar discord do usuario rodrigojoaobertotti

rodrigojoaobertotti

estou tendo o erro "A autenticação de TLS mútuo não está configurada na URL informada" para receber webhooks, quando eu uso informo o arquivo .p12, eu devo também configurar chain-pix-sandbox.crt? Ou só com o arquivo .p12 já deveria funcionar?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Mesmo com credenciais erradas, a homologação tem URL distinta, com "-h" no final.

Avatar discord do usuario johnny.conexa

johnny.conexa

Ver Respostas

N sei se entendi, mas, seria o caso de chamar esse endpoint em homologação, é isso?

É que meu sistema não usa a url de homologação em nenhum momento :x

Eu imaginei que poderia ser o caso de o meu cliente ter copiado as "credenciais de homologação" erroneamente ao invés das de prod, mas se fosse isso, teria dado erro antes, em oauth/token

Avatar discord do usuario celestino8068

celestino8068

{
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 403"
}

Avatar discord do usuario matheus_efi

matheus_efi

Bom dia, <@!330406276972412928>. Verifica por favor se você está tratando o /pix que é acrescido ao enviarmos a notificação via POST ​/pix.
Exemplo: Você configurou o webhook https://gerencianet.com/webhook, a notificação vai para https://gerencianet.com/webhook/pix
Um exemplo de uma aplicação em node fazendo esta tratativa:

js
// 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();
}
});

Avatar discord do usuario marcos2050mg

marcos2050mg

Ver Respostas

Bom dia, meu node é o v14.18, fiz igual ao exemplo no link que você postou. Quando eu tento setar minha url no webhook eu recebo a mensagem de erro UNABLE_TO_VERIFY_LEAF_SIGNATURE e não aparece nada no meu console do meu servidor Node, parece que a Gerencianet nem chega a chamar a minha URL

Avatar discord do usuario marcos2050mg

marcos2050mg

Ver Respostas

Boa tarde, implementei o Webhook igual ao exemplo em Noje JS na documentação do site , porém ao definir a minha URL para webhook está me retornado a seguinte mensagem de erro: UNABLE_TO_VERIFY_LEAF_SIGNATURE

Avatar discord do usuario marcos2050mg

marcos2050mg

Bom dia, fiz uma implementação do mTLS no glassfish e estou tentando configurar a chave webhook mas a gerencia net está retornado uma mensagem de erro :"A requisição na URL informada falhou com o erro: UNABLE_TO_VERIFY_LEAF_SIGNATURE"

Avatar discord do usuario leonardo1314576

leonardo1314576

1 - Gerar QrCode com location retornado da requisição de Gerar Cobrança, está gerando um QrCode inválido. Estou usando a seguinte URL pra gerar o qrcode: https://gerarqrcodepix.com.br/api/v1
2 - Quando o Status de uma cobrança está com o status de "CONCLUIDA" significa que o pagamento já foi realizado?
3 - Qual status sinaliza que um pagamento gerado expirou sem pagamento?
4 - A consulta de cobrança está me retornando uma chave com 35 caracteres. Para consulta de pix, a chave é de 32.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, <@!237939353911820289>.
Por ser uma configuração de servidor específica e característica da hospedagem da AWS não conseguimos muitos detalhes neste quesito.
Em casos de clientes que utilizam este ambiente conseguiram solucionar a configuração de mTLS seguindo os passos do seguinte tutorial.
https://aws.amazon.com/pt/blogs/compute/introducing-mutual-tls-authentication-for-amazon-api-gateway/

Tendo realizado esta configuração conseguimos averiguar se a URL foi registrada com sucesso, e se está sendo enviada as notificações corretamente.

Avatar discord do usuario Dotha

Dotha

boa noite, podem me ajudar? uso aws com nginx, coloquei chain-pix-prod.crt e apontei no ssl_client_certificate, porém ao cadastrar o webhook ele cai no 403 como ssl_client_verify não verificado

{
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 403"
}

Avatar discord do usuario marcelomarkus

marcelomarkus

Ver Respostas

const express = require("express");
const fs = require("fs");
const https = require("https");
const url = require('url');
const bodyParser = require("body-parser");
let FormData = require('form-data');
const axios = require("axios");
var logger = require('morgan');
const httpsOptions = {
cert: fs.readFileSync("fullchain.pem"), // Certificado fullchain do dominio
key: fs.readFileSync("privkey.pem"), // Chave privada
ca: fs.readFileSync("chain-pix-prod.crt"), // Certificado Gerencianet
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;
const PORT = 3000;
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
}));
app.post("/webhook", (request, response) => {
if (request.socket.authorized) {
response.status(200).end();
})
.catch(function (error) {
//console.log
});
} else {
response.status(401).end();
//console.log("não autorizado!");
}
});
// Endpoind para recepção do webhook tratando o /pix
app.post("/webhook/pix", (request, response) => {
if (request.socket.authorized) {
response.status(200).end();
} else {
response.status(401).end();
}
});
httpsServer.listen(PORT, () =>
console.log(listen running on port ${PORT})
);

Avatar discord do usuario ricardostrapasson1333

ricardostrapasson1333

A URL informada respondeu com o código HTTP 301

Avatar discord do usuario ricardostrapasson1333

ricardostrapasson1333

"nome": "webhook_invalido",
"mensagem": "A autenticação de TLS mútuo não está configurada na URL informada"

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, <@!332579151917613067>. Qual problema está enfrentando?
Você conseguiu registrar sua URL de callback, mas não consegue obter os retornos?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Coloca uma outra URL com outro tipo de restrição para desenvolver e testar...