Histórico de mensagens sobre js em pix

EXIBINDO CONVERSAS RECENTES:

Texto: js
Canal: pix
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

// 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

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 ivanteles

ivanteles

Ver Respostas

Boa noite! fiz toda a implementação e funcionou tudo perfeito.
quando coloquei online da um erro Error reading JObject from JsonReader. Path '', line 0, position 0

Como vou contornar isso se não me informa o que ta errado!

Avatar discord do usuario jeffersonsotto

jeffersonsotto

voce diz como esta a path (caminho) do certificado, no arquivo credentials.json?

Avatar discord do usuario johnny.conexa

johnny.conexa

Ver Respostas

Boa tarde pessoal,

{
"nome":"json_invalido",
"mensagem":"Valores ou tipos de campo inválidos",
"erros":[
{
"chave":"required",
"caminho":".body.pix.chaves['[email protected]'].recebimento.webhook.notificacao",
"mensagem":"deve ter a propriedade obrigatória pagador"
}
]
}


O que seria essa propriedade "pagador" no endpoint PUT v2/gn/config? Não achei na doc :/

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 reis1337

reis1337

Estou realizando a integração da api pix com o nodejs porém estou com um problema, eu já configurei o webhook porém a notificação de teste ( na configuração do webhook ) chega porém a do pagamento não

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 almirnetocnx

almirnetocnx

Ver Respostas

Boa tarde pessoal, tive um probleminha recente referente a configuração do Pix

Esse foi o body enviado para a rota /v2/gn/config

json
{
"pix": {
"receberSemChave": true,
"chaves": {
"[CHAVE_AQUI]": {
"recebimento": {
"txidObrigatorio": false,
"qrCodeEstatico": {
"recusarTodos": false
},
"webhook": {
"notificacao": {
"tarifa": true
}
}
}
}
}
}
}

Realizando o request acima, recebo o seguinte erro:

json
{
"nome": "json_invalido",
"mensagem": "Valores ou tipos de campo inválidos",
"erros": [
{
"chave": "required",
"caminho": ".body.pix.chaves[CHAVE_AQUI].recebimento.webhook.notificacao",
"mensagem": "deve ter a propriedade obrigatória pagador"
}
]
}

Alguém saberia me informar o motivo do erro? Procurei na documentação e não encontrei, desde já agradeço.

Avatar discord do usuario air

air

Fiz um codigo onde eu coloco uma lista de cnpjs

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 marcelomarkus

marcelomarkus

Ver Respostas

Utilizamos AWS também, utilizamos nodejs (PM2)

Avatar discord do usuario air

air

ela vai ler um .txt com cnpjs de empresas no qual tenho que pagar toda semana

Avatar discord do usuario xic0te

xic0te

Ver Respostas

Bom dia, to tentando criar uma chave pix aleatória via API e tô recebendo status code 500 com esse retorno:

json
{
"nome": "erro_aplicacao",
"mensagem": "Ocorreu um erro ao solicitar a criação da chave"
}

Avatar discord do usuario davicorrea3379

davicorrea3379

ou eu devo inserir em em alguma tag no json durante a requisição?

Avatar discord do usuario mateus.cortiano

mateus.cortiano

Ver Respostas

e tambem estou tendo problemas pra gerar ou list chaves pix no endpoint /v2/gn/evp

json
{
"nome": "erro_aplicacao",
"mensagem": "Ocorreu um erro ao solicitar a criação da chave"
}

Avatar discord do usuario andresisdanca

andresisdanca

Ver Respostas

Está apontando certo.

Veja o código:

File file = new File(CERTIFICADO);

System.out.println("certificado: " + file.isFile() );
System.out.println("certificado: " + file.getAbsolutePath() );

String rota = URL_PADRAO + "/oauth/token";

String basicAuth = Base64.getEncoder().encodeToString(((CLENTE_ID + ':' + CLIENTE_SECRET).getBytes()));
System.setProperty("javax.net.ssl.keyStore", CERTIFICADO);

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();

System.out.println("sslsocketfactory:" + sslsocketfactory.toString() );

URL url = new URL(rota); //Para ambiente de Desenvolvimento
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Basic " + basicAuth);
conn.setSSLSocketFactory(sslsocketfactory);

String requestJson = "{\"grant_type\": \"client_credentials\"}";

try (DataOutputStream stream = new DataOutputStream(conn.getOutputStream())) {

byte[] send = requestJson.getBytes("UTF-8");

stream.write(send);

stream.flush();

}

conn.connect();

String responseJson = inputStreamToString(conn.getInputStream());

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Verifiquei em nossos logs o que realmente foi para seu webhook, e foi enviado corretamente conforme a regex descrita em nossa documentação

json
{
"pix": [
{
"endToEndId": "E00416968202109102102lhPWZIlIT0h",
"txid": "144d302300fb44b4b87001373e64f627",
"chave": "9d8e7ca4-dc98-4ae4-8021-xxxxxxxxxx",
"valor": "12.00",
"horario": "2021-09-10T21:02:32.000Z",
"infoPagador": "Pagamento em Dorper Brasil Tecnologia Ltda."
}
]
}
Estou te mandando no privado mais detalhes