Histórico de mensagens sobre js

EXIBINDO CONVERSAS RECENTES:

Texto: js
# pix
Avatar discord do usuario nicolaujr.

nicolaujr.

json
//Pix recebido
{
"pix": [
{
"endToEndId": "E1803615022211340s08793XPJ",
"txid": "fc9a43k6ff384ryP5f41719",
"chave": "2c3c7441-b91e-4982-3c25-6105581e18ae",
"valor": "0.01",
"horario": "2020-12-21T13:40:34.000Z",
"infoPagador": "pagando o pix"
}
]
}

# pix
Avatar discord do usuario israelbarbara.

israelbarbara.

Ver Respostas

To com uma duvida, mas é mais de programação em si.
Como faço para passar uma variavel para o webhook do pix da gerencianet usando nodejs/express?
eu tentei utilizar a sessao (req.session.nomeVariavel = "abc"), setando o valor dela na rota que gera o qrcode para pegar ela no /webhook quando confirma o pagamento, mas ela chega como undefined no webhook.

# pix
Avatar discord do usuario koda05529

koda05529

<@!795645731385901076> Node JS, tudoo certo

# pix
Avatar discord do usuario schoeps2724

schoeps2724

Ver Respostas

ustilizo curl_setopt_array($curl, array(
CURLOPT_URL => $vrota,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config['certificado'],
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

# pix
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Olá <@!360519039019122701> ! Boa noite. Dentro do seu arquivo config.json, você está inserindo o caminho do seu certificado(campo "pix_cert")?

# pix
Avatar discord do usuario javi3966

javi3966

define ('BASEPATH',__DIR__);
require __DIR__ . '/vendor/vendor/autoload.php';

use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;

$file = file_get_contents(__DIR__ . '/vendor/vendor/gerencianet/gerencianet-sdk-php/src/Gerencianet/config.json');
$options = json_decode($file, true);

require_once 'credentials.php';
estou iniciando o código assim para o "Cobrança imediata sem txid"

# pix
Avatar discord do usuario javi3966

javi3966

Ver Respostas

Boa noite pessoal, me deparei com um problema na hora de tentar requisitar qualquer coisa na api pix, peguei um exemplo dentro da sdk, fiz o codigo semelhante ao que tenho em emissão de boleto e etc apenas pra ver como se comporta, e estou tendo o retorno de nonexistent endpoint , ja segui uma recomendação de adicionar o caminho dentro de src/config.json mas mesmo assim ainda obtenho o retorno, alguma dica do que poderia ser? Estou usando php.

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

# pix
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Olá @Deleted User ! Boa tarde. Não sei se entendi ao certo sua dúvida mas quando uma cobrança Pix é paga enviamos uma requisição POST para a URL que você cadastrou como webhook. Cada requisição enviada possui um timeout de 60 segundos.
Vale lembrar que os callbacks são enviados para a url cadastrada acrescida de um '/pix', dessa forma: ​/pix.
Neste link da documentação detalhamos alguns exemplos do JSON enviado para a URL cadastrada: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-recebendo-callbacks

# pix
Avatar discord do usuario igor_efi

igor_efi

Lembrando que é necessário informar o ID do location retornado no json de quando a cobrança foi criada.

# pix
Avatar discord do usuario israelbarbara.

israelbarbara.

Ver Respostas

eu utilizo um servidor ubuntu com uma aplicação em nodejs, o nginx ja esta configurado, baixei o certificado .crt para o servidor com o nginx apontando para ele. O OpenSSl que esta intalado no servidor esta na versão mais recente, para suportar o TLS 1.2

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Boa tarde, <@!817478695996489788>! Não veio nenhum json informando a falha junto ao código 400? Me informe o número da sua conta Gerencianet que verifico nos logs

# bolix
Avatar discord do usuario renatobosa

renatobosa

Ver Respostas

Ola, Bom dia. estou tentando implementar o GerenciaNet em TS mas quando tento criar qualquer cobrança recebo não autorizado,
private gerenciaInstance = Gerencianet({
sandbox: this.config.sandbox,
client_id: this.config.client_id,
client_secret: this.config.client_secret,
pix_cert: this.config.pix_cert,
});
async createCharge(credit_card: any, billing_address: any, costumer_data: any, products: any): Promise < any > {
const test = {
items: [
{
name: 'Product 1',
value: 1000,
amount: 2,
},
],
shippings: [
{
name: 'Default Shipping Cost',
value: 100,
},
],
};
console.log("Create Charge Gerencianet Data:" + JSON.stringify(test));
return this.gerenciaInstance.createCharge({}, test).then((response: any) => {
console.log("Create Charge Gerencianet Response:" + JSON.stringify(response));
return response;
}).catch((error: any) => {
console.log("Create Charge Gerencianet Error:" + JSON.stringify(error));
return error;
})
}


Resposta
Create Charge Gerencianet Data:{"items":[{"name":"Product 1","value":1000,"amount":2}],"shippings":[{"name":"Default Shipping Cost","value":100}]}
Create Charge Gerencianet Error:"Unauthorized"

# pix
Avatar discord do usuario matheus_efi

matheus_efi

No exemplo do nginx tem o location, segue:

json
server {
#
# ...
#
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate server_ssl.crt.pem;
ssl_certificate_key server_ssl.key.pem;
ssl_client_certificate /root/chain-pix-webhooks-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;
#
# ...
#
location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
rewrite ^(.)$ /webhook;
}
}
Já no exemplo de Flasky, é so inserir no @app.route o caminho de onde o certificado seria exigido, exemplo:
py

@app.route("/webhook", methods=["POST"])
def imprimir():
imprime = print(request.json)
data = request.json
with open('data.txt', 'a') as outfile:
outfile.write("\n")
json.dump(data, outfile)
return jsonify(imprime)

# pix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Bom dia, Anderson! No momento não, o endpoint de envio de Pix necessita da assinatura do termo e contato com a equipe comercial, pois, permite a movimentação de valores via transferência de forma muito rápida em sua conta. Em ambiente de homologação ainda não está pronto o endpoint, mas a nossa equipe está atuando para o desenvolvimento do mesmo.

Em relação a chamada e retorno temos exemplos na documentação que seguem o padrão exato da API, segue os links:
Requisição: https://dev.gerencianet.com.br/docs/api-pix-endpoints#section-requisitar-envio-de-pix
Callback Pix enviado:

json
{
"pix": [
{
"endToEndId": "E090893562021030PIf25a7868",
"chave": "9c3c7441-b91e-4982-3c25-6105581e18ae",
"tipo": "SOLICITACAO",
"status": "REALIZADO",
"valor": "0.01",
"horario": "2021-03-04T20:39:47.000Z"
}
]
}

# bolix
Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Bom dia, Ailton! Segue o link da documentação referente a autenticação https://dev.gerencianet.com.br/docs/endpoint-autorizacao-oauth. Após autenticar na API, você vai precisar enviar no Authorization (Bearer code) e o Content-Type application/json

# pix
Avatar discord do usuario caiopedreira

caiopedreira

Ver Respostas

no mais, basicamente, vc vai percorrendo o json usando as seguintes linhas:
key_exists("evento", $callbackArr);
$evento = $callbackArr["evento"];
?>

# pix
Avatar discord do usuario caiopedreira

caiopedreira

<@!818290769923670038>
eu faria assim:
$rawCallback = file_get_contents('php://input');
file_put_contents("output.txt", "$rawCallback");
// pra percorrer o json depois que salvar:
$callbackArr = json_decode($rawCallback, true);
exit();
?>