Histórico de mensagens sobre não autorizada em pix

EXIBINDO CONVERSAS RECENTES:

Texto: não autorizada
Canal: pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

A Efí não tem, mas você mesmo pode decodificar o QR-Code e o Payload... você só não tem como ter absoluta certeza de que uma instituição autorizada pelo BACEN emitiu o QR-Code, mas provavelmente isso não seja relevante para seu caso.

Avatar discord do usuario patrick27souza

patrick27souza

"reason": "No momento, a transação não foi autorizada.", pessoa, alguém consegue me ajudar? já troquei tbm o cartão, e nada

Avatar discord do usuario patrick27souza

patrick27souza

"reason": "No momento, a transação não foi autorizada."

Avatar discord do usuario joaojesus1550

joaojesus1550

Ver Respostas

Aparece transação não autorizada e não gera o qrcode

Avatar discord do usuario .viniciusc

.viniciusc

Boa tarde pessoal! Sou novo aqui no discord da Efí, eu estou passando por um problema quando eu gero uma cobrança PIX (Estou utilizando o Java 17). O qual me retorna a exceção "java.net.SocketException: Connection reset".

O mais intrigante é que quando eu faço a cobrança em um ambiente de teste normal, a cobrança é realizada com sucesso.
Porém quando eu faço a cobrança dentro do controlador do Spring Boot ele me retorna esse erro. Eu não faço a menor ideia de como resolver.

java
@PostMapping("/gn/charge")
ResponseEntity createCharge(
@RequestHeader(value = "access-token") String accessToken,
@RequestBody Cob cob) {
if (accessToken != null) {
return ResponseEntity
.status(HttpStatus.CREATED)
.body(Charge.createCharge(accessToken, cob.toJson()));
}
return ResponseEntity
.status(HttpStatus.UNAUTHORIZED)
.body(ApiWarning.sendMessage(401, "Requisição não autorizada")); //tratar resposta
}

Avatar discord do usuario jeff2braz

jeff2braz

Transação não autorizada

Avatar discord do usuario d3x73rz1n

d3x73rz1n

Estou fazendo a integração de um cliente. A princípio fiz o passo a passo do site, mas a consulta retorna como não autorizada. Será que há um erro nas chaves dele?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O exemplo que tem na documentação da GN é assim:

const express = require("express");
const fs = require("fs");
const https = require("https");
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(express.json());
app.use(express.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})
);
#Desenvolvido pela Consultoria Técnica da Gerencianet

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

requestCert tem que ser true, rejectUnauthorized false.

const express = require("express");
const fs = require("fs");
const https = require("https");
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(express.json());
app.use(express.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

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

joao_efi

Oi <@!397861880841895936> tudo bem?
O código HTTP 401 se refere ao erro "Unauthorized ". Ou seja, a requisição não foi autorizada.
Verifique, por favor, se está utilizando o client_id, client_secret, e o certificado.p12 todos de homologação.

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Boa tarde <@!564882405794775060>, temos um exemplo que atualizamos hoje na documentação em Node

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

Não, o BACEN mantem um acervo de URLs dos PSPs autorizadas a disponibilizar payloads, e a do seu serviço não é uma delas.