Tem também o client_id, client_secret e certificado... que identificam conta e aplicação.
Termos mais procurados:
Termos mais procurados:
Tem também o client_id, client_secret e certificado... que identificam conta e aplicação.
O exemplo que tem na doc é assim:
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
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);
}
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
Sandbox, está marcado como true, o buffer do certificado aparece, o client_id vem, o secret_id vem támbém....
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"}
Você pode tentar realizar a conversão a partir deste exemplo de autenticação:
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
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
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)
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);
bom, coloquei a chave client ID é a chave Secret ID junto com o Código Identificador da Conta
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?
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.
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.
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
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!
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
";";
echo $response;
echo "