Histórico de mensagens sobre Secret id em pix

EXIBINDO CONVERSAS RECENTES:

Texto: Secret id
Canal: pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Tem também o client_id, client_secret e certificado... que identificam conta e aplicação.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O exemplo que tem na doc é assim:

//Desenvolvido pela Consultoria Técnica da Gerencianet

"use strict";
const https = require("https");
var axios = require("axios");
var fs = require("fs");

//Insira o caminho de seu certificado .p12 dentro de seu projeto
var certificado = fs.readFileSync("./certificado.p12");

//Insira os valores de suas credenciais em desenvolvimento do pix
var credenciais = {
client_id: "YOUR-CLIENT-ID",
client_secret: "YOUR-CLIENT-SECRET",
};

var data = JSON.stringify({ grant_type: "client_credentials" });
var data_credentials = credenciais.client_id + ":" + credenciais.client_secret;

// Codificando as credenciais em base64
var auth = Buffer.from(data_credentials).toString("base64");

const agent = new https.Agent({
pfx: certificado,
passphrase: "",
});
//Consumo em desenvolvimento da rota post oauth/token
var config = {
method: "POST",
url: "https://api-pix-h.gerencianet.com.br/oauth/token",
headers: {
Authorization: "Basic " + auth,
"Content-Type": "application/json",
},
httpsAgent: agent,
data: data,
};

axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});

Avatar discord do usuario joao_efi

joao_efi

Ver Respostas

Boa noite @schinnick tudo bem? 🙂
Caso siga na linha de implementar diretamente no RN + axios, seria necessário implementar dentro do app o consumo das rotas da nossa API.
Vale lembrar que para o consumo dos endpoints PIX é necessário seu par de credenciais (Client_id e Client_Secret) + o certificado Pix emitido dentro da sua própria conta Gerencianet.
Tentar, de alguma forma, embutir essas informações no app pode ser perigoso caso alguém mal intencionado venha executar engenharia reversa no app após lançado. Onde uma vez com acesso a essas credenciais + certificado o intruso consegue realizar ações na sua conta, e até transferências (caso tenha o envio de pix habilitado)
Com isso em vista, acredito que não seja a melhor abordagem de integração.

Quando a implementação do backend, no nosso github você encontra SDKs em diversas linguagens para facilitar o desenvolvimento!
Segue o link da nossa SDK em node: https://github.com/gerencianet/gn-api-sdk-node

Avatar discord do usuario hubner7903

hubner7903

const certificado = await this.movimentoService.certificado_gn();
const client_id = await this.movimentoService.client_id_gn();
const client_secret = await this.movimentoService.client_secret_gn();
const base64 = Buffer.from(${client_id}:${client_secret}).toString("base64");

let https = require('https');
let agent = new https.Agent({
pfx: certificado,
passphrase: ''
})

var axios = require('axios');
var data = JSON.stringify({ grant_type: 'client_credentials'});

var config = {
method: 'post',
url: 'https://api-pix-h.gerencianet.com.br/oauth/token',
headers: {
'Authorization': Basic ${base64},
'Content-Type': 'application/json',

},
httpsAgent: agent,
data: data
};

console.log(config)
console.log('=======================================================================')
try {
const response = await axios.request(config);
return response.data
} catch (error) {
console.error(error);
}

Avatar discord do usuario luizfps7799

luizfps7799

Ver Respostas

pessoal minha integração usando nodejs e typescript está dando forbidden quando tento usar os dados de produção, quando mudo o certificado e clientId, secretId e sandbox para rodar em homologação funciona, alguém sabe o que pode ser ? ( já rodei apontando pra produção uma vez e funcionou normalmente), estou usando o sdk da gerencia net e não estou conseguindo emitir uma cobrança pix

Avatar discord do usuario pedrohenriquebufulin

pedrohenriquebufulin

Sandbox, está marcado como true, o buffer do certificado aparece, o client_id vem, o secret_id vem támbém....

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 palloma_efi

palloma_efi

csharp
using Gerencianet.NETCore.SDK;
...
dynamic endpoints = new Endpoints("client_id", "client_secret", true, "production.p12");

var body = new
{
calendario = new {
expiracao = 3600
},
devedor = new {
cpf = "12345678909",
nome = "Francisco da Silva"
},
valor = new {
original = "1.45"
},
chave = "71cdf9ba-c695-4e3c-b010-abb521a3f1be",
solicitacaoPagador = "Informe o número ou identificador do pedido."
};

var response = endpoints.PixCreateImmediateCharge(null, body);
Console.WriteLine(response);

Avatar discord do usuario thiprogramador

thiprogramador

Bom dia, minha aplicação Woocommerce esta retornando Unauthorized.
Os dados de: client ID, Secret e Identificador de conta estão corretos. A chave pix também, e o certificado pix.
Olhando o log esta apresentando: 3500000

Avatar discord do usuario sergioc3g7187

sergioc3g7187

Ver Respostas

agora após alterar o certificado, client_id e client_secret para o ambiente de produção eu recebo o erro [message] => Forbidden na hora de obter o token

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não, a chave privada é uma parte do arquivo que se baixa junto com o certificado. São 2 fatores de autenticação, o client secret e o certificado (assumindo que o client id não seja sigiloso)

Avatar discord do usuario gugamarcelino

gugamarcelino

Eu estava usando assim:

let options = {
sandbox: false,
clientIdProducao: process.env.clientIdProducao,
clientSecretProducao: process.env.clientSecretProducao,
validateMtls: false,
pathCertProducao: path.resolve(__dirname, '')
};

let gerencianet = new Gerencianet(options);



Alterei agora assim, e funcionou:

let options = {
sandbox: false,
client_id: process.env.clientIdProducao,
client_secret: process.env.clientSecretProducao,
validateMtls: false,
pix_cert: path.resolve(__dirname, '
')
};

let gerencianet = new Gerencianet(options);

Avatar discord do usuario filipe9105

filipe9105

bom, coloquei a chave client ID é a chave Secret ID junto com o Código Identificador da Conta

Avatar discord do usuario wesleyadiel1953

wesleyadiel1953

Ver Respostas

Pessoal, integrei a API de Boletos via SDK(C#), porém a API do PIX exige um versão mais nova do .NET que estamos usando atualmente, então para não alterar nosso projeto, vou integrar pelas requisições direto, porém estou com uma dúvida sobre quais os dados devo colocar nos campo do Basic Auth, seria o client_id e o secret_id? Ou o usuário e senha da minha conta mesmo?

Avatar discord do usuario sady_efi

sady_efi

No modelo que você descreveu, existem duas possibilidades:
- Você ter uma conta "Pulmão" onde todos os pagamentos são recebidos e gerenciados por você (mais crítico e requer um nível maior de controle do seu sistema)
- Cada escola possui sua conta e fornece para seu app as credenciais (Client_Id e Secret), certificado e chave EVP, e seu sistema gerencia as cobranças. Neste caso o saldo já estará na conta do cliente, oque reduz a complexidade da operação.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, <@!828419311868575754>.
Para obter as chaves (Client_Id e Client_Secret) de homologação e produção, você mesmo consegue obtê-las através do painel web da Gerencianet.

Para isso, basta você efetue login na conta Gerencianet (https://usuario.gerencianet.com.br/login) e acesse o menu API -> Minhas Aplicações -> Nova Aplicação , informe um nome para sua aplicação e clique em Criar nova aplicação. E então você visualizará as chaves Client_Id e Client_Secret de Produção e Homologação.

Avatar discord do usuario anoni_mato

anoni_mato

hum.. tá estranho isso. vc tá enviando client id + client secret num request onde você deveria estar usando um token de consumo já obtido anteriormente

Avatar discord do usuario joao_efi

joao_efi

Oi <@!850502535859929110> tudo bem? 😄
Para realizar a integração com os serviços da Gerencianet, se você ainda não tem uma conta, faça seu cadastro, ele será sua identificação e te dará acesso as chaves de utilização da API. Com sua conta criada, você vai precisar das suas credenciais Client_ID e Client_Secret para realizar a integração.

Para visualizar suas credenciais basta fazer login em sua conta Gerencianet ( https://gerencianet.com.br/#login )
Acesse o menu API > Minhas Aplicações, e crie a sua aplicação, como mostra o link: https://gerencianet.com.br/artigo/como-criar-uma-nova-aplicacao-para-usar-a-api-pix/

Você visualizará então as credenciais Client_Id e Client_Secret de Produção e Desenvolvimento.
Vale lembrar que as chaves de Desenvolvimento são utilizadas para simular cobranças e efetuar testes na plataforma. Já as chaves de Produção devem ser utilizadas quando for emitir cobranças reais.

Abaixo seguem alguns links úteis para consulta:
- Temos uma tabela resumindo os tipos de integrações e formas de uso disponíveis, acesse e escolha a que melhor atende suas necessidades. https://dev.gerencianet.com.br/docs/tipos-integracoes
- Possuímos um curso EAD que poderá lhe ajudar a ter uma visão geral do funcionamento da nossa API de boletos, cartão, marketplace e assinaturas. https://www.udemy.com/course/eadgerencianet/
- Para você implementar os serviços de pagamento desejados, em nossa documentação temos exemplos e explicação da utilização em diversas linguagens. https://dev.gerencianet.com.br/docs/gerar-boleto-bancario
Além disso, nosso GitHub tem também uma SDK em PHP com exemplos prontos para facilitar sua integração. https://github.com/gerencianet/gn-api-sdk-php

Quaisquer dúvidas sinta-se à vontade para entrar em contato conosco!

Avatar discord do usuario matwbug

matwbug

Alguém consegue me ajudar aqui com a api pix? por algum motivo minha requisição curl nao está dando response no site da gerencianet, até baixei os proprios códigos da doc e mesmo assim não foi, é como se a requisição não fosse feita, estou utilizando php


$config = [
"certificado" => BASE.'data/certif/gerencianet.pem',
"client_id" => "xx",
"client_secret" => "xx"
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, homologação ou produção
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"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "
";
echo $response;
echo "
";
?>