Histórico de mensagens sobre App em pix

EXIBINDO CONVERSAS RECENTES:

Texto: App
Canal: pix
Avatar discord do usuario lucio3859

lucio3859

Ver Respostas

Boa tarde. Estou no final da fase de testes e gerei vários QRCodes e todos estavam lendo normalmente pelo APP do Banco do Brasil, mas agora recebo sempre essa msg de erro. Alguém sabe me dizer o por quê?

Avatar discord do usuario rsdeveloper2757

rsdeveloper2757

public static function getToken()
{
try {
$guzzle = new Client([
'headers' => [
'Content-Type' => 'application/json',
],
/ Desativar SSL/
'verify' => true
]);

$response = $guzzle->request('POST', 'https://api-pix-h.gerencianet.com.br/oauth/token',
[
'grant_type' => 'client_credentials',
'client_id' => 'Client_Id_e6e0827b856f2b',
'client_secret' => 'Client_Secret_477f1d5694cd27029a82
',
'cert' => [storage_path('app/public/certificados/files/h-329571-erp_tributos.pem'), null],
]
);

$body = $response->getBody();
$contents = $body->getContents();
$token = json_decode($contents);

return $token->access_token;

} catch (GuzzleException $e) {
echo $e->getMessage();
}
}

Não consigo acessar a autenticação na api

Gera esse erro
Server error: POST https://api-pix-h.gerencianet.com.br/oauth/token resulted in a 500 Internal Server Error response: {"nome":"erro_interno_servidor","mensagem":"Erro interno do servidor"}

Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Você pode tentar realizar a conversão a partir deste exemplo de autenticação:

using System;
using System.Security.Cryptography.X509Certificates;
using System.Collections.Generic;
using RestSharp;

namespace PixGerencianet
{
class Authorize
{
public static string Base64Encode(string plainText)
{
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}

static void Main(string[] args)
{

var credencials = new Dictionary{
{"client_id", "YOUR-CLIENT-ID"},
{"client_secret", "YOUR-CLIENT-SECRET"}
};
var authorization = Base64Encode(credencials["client_id"] + ":" + credencials["client_secret"]);
var client = new RestSharp.RestClient("https://api-pix-h.gerencianet.com.br/oauth/token");
var request = new RestRequest(Method.POST);

X509Certificate2 uidCert = new X509Certificate2("./certificado.p12", "");
client.ClientCertificates = new X509CertificateCollection() { uidCert };

request.AddHeader("Authorization", "Basic " + authorization);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\r\n \"grant_type\": \"client_credentials\"\r\n}", ParameterType.RequestBody);

IRestResponse restResponse = client.Execute(request);
string response = restResponse.Content;

Console.WriteLine(response);
}
}
}

Avatar discord do usuario wevertondumont

wevertondumont

Pessoal o Pix caiu? Estamos recebendo pagamentos via qr code, porém não está sendo exibido nem no app nem no site a transação, e não está sendo enviado a notificação da compra para o nosso servidor.

Avatar discord do usuario wsaturnino9992

wsaturnino9992



Fatal error: Uncaught Error: Call to a member function getBody() on null in C:\Program Files (x86)\Zend\Apache24\htdocs\acessarconta\App\gerencianet\src\Gerencianet\Request.php:63
Stack trace:
#0 C:\Program Files (x86)\Zend\Apache24\htdocs\acessarconta\App\gerencianet\src\Gerencianet\Auth.php(45): Gerencianet\Request->send('post', '/oauth/token', Array)
#1 C:\Program Files (x86)\Zend\Apache24\htdocs\acessarconta\App\gerencianet\src\Gerencianet\ApiRequest.php(23): Gerencianet\Auth->authorize()
#2 C:\Program Files (x86)\Zend\Apache24\htdocs\acessarconta\App\gerencianet\src\Gerencianet\Endpoints.php(65): Gerencianet\ApiRequest->send('post', '/v2/cob', Array)
#3 C:\Program Files (x86)\Zend\Apache24\htdocs\acessarconta\App\gerencianet\src\Gerencianet\Endpoints.php(42): Gerencianet\Endpoints->Gerencianet\{closure}(Array, Array)
#4 C:\Program Files (x86)\Zend\Apache24\htdocs\acessarconta\App\application\controllers\conta.php(593): Gerencianet\Endpoints->__call('pixCreateImmedi...', Array)
#5 C:\Program Files (x86)\Zend\Apache24\ in C:\Program Files (x86)\Zend\Apache24\htdocs\acessarconta\App\gerencianet\src\Gerencianet\Request.php on line 63

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Opção 1: Logar no app mobile com essa conta PJ, criar uma chave Pix, colocar na configuração
Opção 2: usar o endpoint /gn/evp para criar uma nova chave aleatória

Avatar discord do usuario falightpro84

falightpro84

Ver Respostas

Boa noite, preciso de um auxilio sobre api pix se puderem me chamar no whatsapp

Avatar discord do usuario joao_efi

joao_efi

Algo tipo

js
let credentials = client_id + ':' + client_secret;
let auth = Buffer.from(config.data_credentials).toString('base64');

axios({
method: 'POST',
url: '${process.env.GN_ENDPOINT}/oauth/token',
headers:{
Authorization: 'Basic ${auth}',
'Content-Type': 'application/json'
},
httpsAgent: agent,
data:{
grant_type: 'client_credentials'
}

}).catch((e)=>{
console.log(e)
})

Avatar discord do usuario carvartur

carvartur

axios({
method: 'POST',
url:${process.env.GN_ENDPOINT}/oauth/token,
headers:{
Authorization:Basic ${credentials},
'Content-Type': 'application/json'
},
httpsAgent: agent,
data:{
grant_type: 'client_credentials'
}

}).catch((e)=>{
console.log(e)
})

Avatar discord do usuario edvandell.

edvandell.

Ver Respostas

Está sendo realizada exatamente igual a documentação. Fiz a geração do certificado, converti para .pem com o app da GerenciaNet, no postman > settings > Add Certificate e depois:
- Host: api-pix-h.gerencianet.com.br
- PFX file: anexei o certificado convertido (.pem)

Na requisição /oauth/token em Authorization inseri em username o client_id e password o client_secret.

Avatar discord do usuario rodrigojoaobertotti

rodrigojoaobertotti

Ver Respostas

Olá, boa tarde!
Quando tento configurar os webhooks, estou tendo o erro UNABLE_TO_GET_ISSUER_CERT no campo request.socket.authorizationError
tanto na primeira, quanto na segunda solicitação que o gerência net faz (a primeira é normal dar erro, certo?)

this.server = https.createServer(
{
cert: fs.readFileSync('./credentials/server.crt'),
key: fs.readFileSync('./credentials/server.key'),
ca: [
fs.readFileSync('./credentials/gerenciaNet/pix-ca-crt.pem')
],
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false,
},
this.app
);

Avatar discord do usuario wellsonalmeida

wellsonalmeida

ai o app consome a api

Avatar discord do usuario wellsonalmeida

wellsonalmeida

tenho backend da aplicação em php onde app consome api. Posso fazer checkout transparente no meu sistema em php

Avatar discord do usuario wellsonalmeida

wellsonalmeida

Ver Respostas

consigo gerar o qrcode de pagamento no proprio app?

Avatar discord do usuario 4workpraia6603

4workpraia6603

Ver Respostas

Bom dia, recebi um e-mail referente a "Assunto: Atualize sua cadeia de certificados da API Pix", no entanto minha integração é feita do gerencianet com o conexa.app, eu usuário final que devo atualizar isso ? ou é o pessoal do conexa que deve atualizar ?

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

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

rodrigojoaobertotti

Ver Respostas

bom dia!
a respeito de configurar o certificado CA, é recomendado ter uma API exclusiva para receber os webhooks PIX do Gerência Net? ou tudo bem utilizar uma API de um App existente para receber os webhooks?