Histórico de mensagens sobre js

EXIBINDO CONVERSAS RECENTES:

Texto: js
# pix
Avatar discord do usuario RodrigoSilva

RodrigoSilva

Olá, boa tarde galera, alguem consegue me ajudar com SDK NodeJS gn-api-sdk-node?

# devs
Avatar discord do usuario luaalvaro

luaalvaro

Ver Respostas

Alguém aqui já conseguiu configurar o certificado mTLS em hospedagem compartilhada
na Vercel com as api routes next.js?

# devs
Avatar discord do usuario luaalvaro

luaalvaro

Ver Respostas

Boa tarde pessoal. Estou utilizando as api routes next js para criar uma cobrança pix
Consegui me autenticar na api, já tenho meu access token,
Porém na hora de criar uma nova cobrança imediata
Estou recebendo um Forbidden 403

(estou utilizando localhost e credenciais de homologação)

Alguem poderia me dar uma força?

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, @.antoniogregorio. A mensagem de retorno contida na documentação estava desatualizada, o correto é retornar o segundo json mencionado por você.

json
{
"nome": "pedido_pagamento_negado",
"mensagem": "Saldo insuficiente para realizar o pagamento"
}

Vamos atualizar esta informação na doc.

# pix
Avatar discord do usuario .antoniogregorio

.antoniogregorio

Ver Respostas

json
{
"nome": "saldo_insuficiente",
"mensagem": "Saldo insuficiente para realizar o pagamento"
}

eu recebo

json
{
"nome": "pedido_pagamento_negado",
"mensagem": "Saldo insuficiente para realizar o pagamento"
}

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, @almirnetocnx. Para saber o valor da tarifa de um Pix, você pode utilizar o seguinte endpoint para configurar sua conta, e então nesta configuração você define como true para receber a tarifa junto com a notificação do webhook.
https://dev.gerencianet.com.br/docs/api-pix-endpoints#criarmodificar-configura%C3%A7%C3%B5es-da-conta

Desta forma, ao acionar seu webhook enviaremos um json semelhante ao seguinte, contendo o valor da tarifa.

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

imagem enviada na mensagem pelo usuario guilherme_efi

# assinaturas
Avatar discord do usuario antoniofernandes

antoniofernandes

@igor_efi Fala meu amigo bora tirar mais uma dúvida. Me corrija se estiver errado.

Entendi que vou receber um post com código da notificação na url indicada no campo notification
código esse que devo utilizar para consultar os dados da notificação e fazer a tratativa no meu sistema. Correto?

js
const token = $_POST["notification"];

const params = {
'token' : $token
};

var gerencianet = new Gerencianet(options);

gerencianet
.getNotification(params)
.then(console.log)
.catch(console.log)
.done();

Minha dúvida é:

EXISTE alguma forma de no painel pega o conteudo do post notification, para que eu possa simular localmente o envio desse post e fazer todas tratativas fazendo a consulta localmente?

Vale lembrar que estou implementado assinatura apenas com cartão de crédito.

# pix
Avatar discord do usuario alexandremesquita7661

alexandremesquita7661

Ver Respostas

{
"nome": "json_invalido",
"mensagem": "Valores ou tipos de campo inválidos",
"erros": [
{
"chave": "required",
"caminho": "",
"mensagem": "deve ter a propriedade obrigatória body"
}
]
}

# pix
Avatar discord do usuario alexandremesquita7661

alexandremesquita7661

Ver Respostas

Bom dia, Palloma! Sobre a devolução, está retornando o seguinte Json:

# pix
Avatar discord do usuario alexandremesquita7661

alexandremesquita7661

Ver Respostas

Boa tarde, alguém tem um json de exemplo para requisição de devolução do pix?

# pix
Avatar discord do usuario ca307

ca307

Ver Respostas

Boa tarde pessoal.
Como estão?
Criei uma aplicação em node.js com express básica e quero subir no heroku (ou alguma hospedagem que funcione melhor)
Estou com 2 dificuldades:
1 - Onde que eu coloco os certificados gerenciaNet no servidor?
2 - Criei um projeto na gerenciaNet, coloquei as credenciais mas quando tento ler uma criação de cobrança recebo 401. O que pode estar acontecendo?

# assinaturas
Avatar discord do usuario antoniofernandes

antoniofernandes

Ver Respostas

@igor_efi será que poderia me tirar algumas dúvidas com relação o sistema de assinaturas?

Imagine que crie um plano com os seguintes dados:

js
const body = {
name: 'Título do plano',
repeats: 3,
interval: 1,
}


1 - Considerando o exemplo acima, quem se inscrever nesse plano terá uma cobrança recorrente mensal que se repetirá por 3 meses. Correto?

2- Se sim, o que vai acontecer com assinatura no 4º mês? Eu receberei uma notificação para saber que assinatura finalizou, no caso para fazer uma tratativa para bloquear o acesso do meu cliente ou instrui-lo a fazer uma nova assinatura?

# devs
Avatar discord do usuario jessica_efi

jessica_efi

js
var identificadorDeConta = "seu_identificador_de_conta";

var s = document.createElement('script');
s.type = 'text/javascript';
var v = parseInt(Math.random() 1000000);
s.src = 'https://sandbox.gerencianet.com.br/v1/cdn/' + identificadorDeConta + '/' + v;
s.async = false;
s.id = identificadorDeConta;
if (!document.getElementById(identificadorDeConta)) {
document.getElementsByTagName('head')[0].appendChild(s);
};
$gn = {
validForm: true,
processed: false,
done: {},
ready: function (fn) {
$gn.done = fn;
}
};

# pix
Avatar discord do usuario du2dev

du2dev

Ver Respostas

entendi sobre essa parte tudo bem, digo nessa parte aqui usando o a configuração do servidor me nodejs por exemplo

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;

# pix
Avatar discord do usuario tieferson

tieferson

Ver Respostas

@rubenskuhl caso supostamente vários pix forem recebidos ao mesmo tempo. A GN vai fazer uma chamada pra cada pix ou pode ocorrer de ter apenas uma única chamada com vários pix no json?

# pix
Avatar discord do usuario tieferson

tieferson

@rubenskuhl , deu certo a validação no ambiente de homologação. O Problema era que eu não tinha o arquivo dados.json criado no meu servidor. Falha básica [{"evento":"teste_webhook","data_criacao":"2022-09-07T14:36:46.149Z"}]

# pix
Avatar discord do usuario tieferson

tieferson

Vocês tem o link pra eu baixar esse json?

# dúvidas
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

@Xossy Quando você criar uma assinatura você utiliza o parâmetro metadata>notification_url definindo uma URL de retorno.
Assim a cada cobrança que for criada e paga, mensalmente por exemplo, será enviado uma notificação para seu sistema com o notification_token da assinatura (https://dev.gerencianet.com.br/docs/entendendo-fluxo-notificacoes).
Ao receber o notification_token, seu sistema deverá consultá-lo para obter os detalhes da notificação (https://dev.gerencianet.com.br/docs/notificacoes-recebendo#2-consultando-detalhes-de-uma-notifica%C3%A7%C3%A3o), e então obter o json semelhante ao seguinte:

json
{
"code": 200,
"data": [
{
"id": 1,
"type": "subscription",
"custom_id": null,
"status": {
"current": "new",
"previous": null
},
"identifiers": {
"subscription_id": 11976
},
"created_at": "2017-07-20 00:20:16"
},
{
"id": 2,
"type": "subscription",
"custom_id": null,
"status": {
"current": "new_charge",
"previous": "new"
},
"identifiers": {
"subscription_id": 11976
},
"created_at": "2017-07-20 00:20:16"
},
{
"id": 3,
"type": "subscription_charge",
"custom_id": null,
"status": {
"current": "new",
"previous": null
},
"identifiers": {
"subscription_id": 11976,
"charge_id": 2396478
},
"created_at": "2017-07-20 00:20:16"
}
]
}
neste Json você vai capturar o array com que te mostra todo histórico da assinatura.

Então você deverá capturar em cada laço desse json. Se o laço conter o "type": "subscription", significa que ele se refere a um registro de alteração da assinatura.
Se em outro laço conter o "type": "subscription_charge", significa que ele se refere a um registro de alteração de uma cobrança, então você poderá verificar o status>current, subscription_id a qual se refere.

Veja o exemplo completo da resposta ao consultar o token de notificação de uma assinatura: https://dev.gerencianet.com.br/docs/notificacoes-recebendo#21-exemplos-de-respostas

# cartões
Avatar discord do usuario joao_efi

joao_efi

@barretodanny enquanto não é solucionada a situação da documentação, seguem os scripts que são gerados:
Basta substituir com seu identificador de conta.

PRODUÇÃO:

js
var identificadorDeConta = "seu_identificador_de_conta";

var s = document.createElement('script');
s.type = 'text/javascript';
var v = parseInt(Math.random() 1000000);
s.src = 'https://api.gerencianet.com.br/v1/cdn/' + identificadorDeConta + '/' + v;
s.async = false;
s.id = identificadorDeConta;
if (!document.getElementById(identificadorDeConta)) {
document.getElementsByTagName('head')[0].appendChild(s);
};
$gn = {
validForm: true,
processed: false,
done: {},
ready: function (fn) {
$gn.done = fn;
}
};

HOMOLOGAÇÃO:
js
var identificadorDeConta = "seu_identificador_de_conta";

var s = document.createElement('script');
s.type = 'text/javascript';
var v = parseInt(Math.random()
1000000);
s.src = 'https://sandbox.gerencianet.com.br/v1/cdn/' + identificadorDeConta + '/' + v;
s.async = false;
s.id = identificadorDeConta;
if (!document.getElementById(identificadorDeConta)) {
document.getElementsByTagName('head')[0].appendChild(s);
};
$gn = {
validForm: true,
processed: false,
done: {},
ready: function (fn) {
$gn.done = fn;
}
};

# dúvidas
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Certo, @Xossy.
Esse método ele não está presente nessa versão da SDK, mas você pode adicioná-lo para que funcione.
No arquivo /src/Gerencianet/config.json(https://github.com/gerencianet/gn-api-sdk-php/blob/3.x/src/Gerencianet/config.json#L78) adicione o seguinte trecho na lista:

json
"oneStepSubscription": {
"route": "/v1/plan/:id/subscription/one-step",
"method": "post"
},
Depois disso conseguirá chamar o método oneStepSubscription