Histórico de mensagens sobre Secret id em pix

EXIBINDO CONVERSAS RECENTES:

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

guilherme_efi

Ver Respostas

Bom dia, @leonardo.amaral! Como vai?
Você consegui sim fazer testes em homologação, mas para isso você irá precisar da sua conta para obter as credenciais Cliente_Id, Client_Secret e certioficado para autenticação.
O processo será basicamente o seguinte:
1 Criar cobrança em homologação (https://dev.gerencianet.com.br/docs/api-pix-endpoints#criar-cobran%C3%A7a-imediata-com-txid)
Se o valor da cobrança está entre R$ 0.01 à R$ 10.00: A cobrança é confirmada, informação virá via Webhook.
Se o valor da cobrança é maior que R$ 10.00: A cobrança permanece ativa, sem confirmação. Como não há webhook nesses casos, nada é feito
2
para obter o Pix copia e cola, você pode fazer como o Rubens mencionou, usar uma biblioteca que monta o BRCode, ou usar um endpoit que já entregarmos pronto, junto com a imagem e um link de pagamento também. (https://dev.gerencianet.com.br/docs/api-pix-endpoints#gerar-qrcode-de-um-location)

Para facilitar ainda mais esse processo de integração, você ainda pode usar uma de nossas SDKs (https://github.com/gerencianet).

Avatar discord do usuario saviobraz

saviobraz

const options = {

sandbox: false, // troque para false em produção
client_id: client_id_ger_net !== undefined ? client_id_ger_net : "",
client_secret:client_secret_ger_net !== undefined ? client_secret_ger_net: "",
certificate: './cert_area_azul_crt.pem',
pemkey: './cert_area_azul_key.pem',
//pix_cert: p12,
//pix_cert: p12Buffer,
};
const gerencianet = new Gerencianet(options);

const body = {
calendario: {
expiracao: 3600,
},
devedor: {
cpf: cpf,
nome: nome,
},
valor: {
original: data.valor_cobranca,
},
chave: chave_evp_pix_ger_net, // Informe sua chave Pix cadastrada na gerencianet //o campo abaixo é opcional
infoAdicionais: [
{
nome: 'Pagamento via app',
valor: 'Recarga Area Azul Itaperuna Plus',
},
{
nome: 'Pedido',
valor: data.numerosaida,
},
],
};

return gerencianet
.pixCreateImmediateCharge([], body)
.then((resposta: Promise) => {
//console.log(resposta);
console.log("pixCreateImmediateCharge: " + JSON.stringify(resposta));
})
.catch((error: Promise) => {
//console.log(error);
console.log("Erro no pixCreateImmediateCharge: " + JSON.stringify(error));
});

Avatar discord do usuario ysabella3926

ysabella3926

require('dotenv').config({path: '../.env_homologation'})


console.log(process.env.GN_CLIENT_KEY_PROD)


const urlApiProduction = 'https://api-pix.gerencianet.com.br'
const urlApiStaging = 'https://api-pix-h.gerencianet.com.br'

const https = require('https') //conexão segura para enviar dados
const axios = require('axios')
const fs = require('fs')//ler arquivos no disco
const baseURL = process.env.GN_ENV === 'production' ? urlApiProduction : urlApiStaging

const getToken = async() =>{
//console.log('getToken', process.env.GN_CLIENT_KEY_PROD)
const certificate = fs.readFileSync('../' + process.env.GN_CERTIFICATE)
const credentials ={
client_id: process.env.GN_CLIENT_KEY_PROD,
client_secret: process.env.GN_CLIENT_SECRET_PROD
}
const data = JSON.stringify({grant_type: 'client_credentials'})//o que será retornado da api
const dataCredentials = credentials.client_id + ':' + credentials.client_secret
const auth = Buffer.from(dataCredentials).toString('base64')


const agent = new https.Agent({
pfx: certificate,
passphrase: '',
})

const config ={
method: 'POST',
url: baseURL + '/oauth/token',
headers: {
Authorization: 'Basic' + auth,
'Content-Type': 'application/json'
},
httpsAgent: agent,
data: data,
}
const result = await axios(config)
console.log(result.data)

}

getToken()

Avatar discord do usuario lucashang

lucashang

Ver Respostas

Boa noite pessoal, estou fazendo uns testes de integração com a api PIX, mas não consigo passar da autenticação, seguindo o tutorial na documentação eu estou mandando o client_id, client_secret e certificado na requisição, mas mesmo assim recebo uma resposta de erro 401:
- Quando testando pelo sdk-typescript a resposta é essa: { error: 'invalid_token', error_description: 'Invalid access token' }
- Quando testando pelo postman a resposta é essa: {"error": "invalid_client", "error_description": "Invalid or inactive credentials"}
Alguem poderia me auxiliar a entender o que estou fazendo de errado?

Avatar discord do usuario _zamparo

_zamparo

Ver Respostas

Existe algum prazo para que uma aplicação entre em funcionamento?
Tenho uma aplicação criada uns dias atrás e está funcionando normal.
Meu cliente criou hoje uma aplicação e configuramos os client_id, client_secret e certificado.
Mas quando tentamos gerar um pix aparece o erro: Client_id or Client_secret are wrong

Avatar discord do usuario _zamparo

_zamparo

Ver Respostas

Olá!
Estou com um problema na geração do pix quando mudo o certificado, o client_ID e o client_secret da homologação para produção. Sempre me apresenta o erro: br.com.gerencianet.gnsdk.exceptions.AuthorizationException: Authorization Error: Client_id or Client_secret are wrong

Já excluí a aplicação e gerei novos certificados, mas sempre aparece o mesmo erro. Na homologação funciona normalmente.
Alguém sabe o que pode ser?
Obrigado.

Avatar discord do usuario ranulfosouza

ranulfosouza

Ver Respostas

Boa noite, pessoal.
Estou tomando esse erro ao tentar criar a charge do pix no node.js:

--> Erro createCharge Error: FALHA AO LER O CERTIFICADO
at Endpoints.run (/usr/src/app/data/cloud/node_modules/gn-api-sdk-node/lib/endpoints.js:36:11)
at Gerencianet. [as pixCreateImmediateCharge] (/usr/src/app/data/cloud/node_modules/gn-api-sdk-node/index.js:20:22)
at createCharge (/usr/src/app/data/cloud/functions/order_pix.js:316:40)
at /usr/src/app/data/cloud/functions/order_pix.js:54:30
at processTicksAndRejections (internal/process/task_queues.js:93:5)



module.exports = {
sandbox: false,
debug: false,
client_id: 'Client_Id_xx',
client_secret: 'Client_Secret_xx',
account_id: 'xxx',
certificate: resolve('../certificates/producao-373554-shopchafe_dev.p12'),
chave_pix: '+5521xxx'/

Eu alterei para passar a pegar o absolute path ( usando o resolve ) conforme sugestão lida acima, mas o erro continua.

Avatar discord do usuario _zamparo

_zamparo

Ver Respostas

Eu novamente! kkk
Liguei agora para a gerencianet e a secretaria eletrônica informou que está com instabilidade no pix.
Existe alguma forma de consultar se o serviço está ativo antes de gerar o qrcode?
Ou quando estiver com instabilidade o sistema não vai gerar o pix?

Avatar discord do usuario purpledev

purpledev

Ver Respostas

Para adicionar o secret id

Avatar discord do usuario mleto

mleto

Ver Respostas

Bom dia! Fiz uma alteração em minha aplicação, trocando o client ID, Secret e certificado, de uma conta PF para PJ. Após isso estou recebendo { error: 'invalid_token', error_description: 'Invalid access token' }. Estou utilizando o SKD Typescript que em tese, faz essa autorização e, também já funcionava anteriormente. Alguem tem ideia do que pode ser? Precisa de uma configuração a mais por ser PJ?

Avatar discord do usuario imcbdo

imcbdo

Ver Respostas

Com todo respeito, vcs não são nada atraentes para um desenvolvedor implementar cobranças por API. Primeira vez que realizo integração, não deixarei de atender nenhum próximo cliente, mas não recomendaria para outros desenvolvedores.

Para gerar um QRCode de Pix temos que:
configurar uma caralh# de permissões, faltando detalhes - Poderia ter um botão, permissões de ecommerce ou para cobranças apenas. (Tempo que poderia estar tomando minha cerveja, rs)
necessidade para gerar um token jwt que vale por 60 minutos - não entendo a real necessidade disso para vcs, para autorização cliente-side otimo, atoa para integração,.

Uma simples chave de API recebimentos seria eficiente ou até msm somente o cliente_id e cliente_secret como é na maioria dos casos.

--

Não discordo de usar certificado nas transações de saída.

Imagino o dono de um pequeno ecommerce que contrata um programador novato ou "barato", já iria fica perdido para fazer uma integração dessa ou nem chegar a fazer.

Tem programador que não sabe oq é um certificado.

Na empresa vizinha apenas uma requisição faz tudo e ainda me retorna o qrcode (nas transações pix)

temos que pensar que menos pode ser mais e melhor.

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Primeiro você deve autenticar na API e obter o access_token.

php
$curl = curl_init();

$authorization = base64_encode("$client_id:$client_secret");

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

$auth = json_decode(curl_exec($curl), true);

curl_close($curl);

$tokenType = $auth['token_type'];
$accessToken = $auth['access_token'];

Depois emitir o pix
php
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/v2/cob/$txID",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_SSLCERT => $arq_certificado, // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS => '{
"calendario": {
"expiracao": 3600
},
"devedor": {
"cpf": "02279112312",
"nome": "Maria apareciada monteiro"
},
"valor": {
"original": "10.21"
},
"chave": "",
"solicitacaoPagador": "Mensaldiade Monteiro Sistemas"
}',
CURLOPT_HTTPHEADER => array(
"authorization: $tokenType $accessToken",
"Content-Type: application/json"
),
));

$dadosPix = json_decode(curl_exec($curl), true);
curl_close($curl);

return $dadosPix;

Avatar discord do usuario du2dev

du2dev

com os cliente_id e secret_id em produção:

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Boa tarde, @joserobertodasilvazero. Tudo bem?
Esta falha 'Forbidden' geralmente é apresentada quando as credenciais client_id e client_secret e ou certificado não foram inseridos corretamente.
Verifique se está tudo certinho.

Avatar discord do usuario azsantosk

azsantosk

Ver Respostas

Verifiquei aqui novamente e sim, o clientid/secret são os mesmos da aplicação com escopo definido

Avatar discord do usuario relixes

relixes

Ver Respostas

O certificado tá lá, o erro parece mais relacionado ao cliente e ao secret id

Avatar discord do usuario relixes

relixes

fiz um teste no ambiente de homologação, com credenciais, clientID e secretID de homologação e continuo recebendo o mesmo erro tbm

Avatar discord do usuario david_balbino

david_balbino


public class GerarPix {

static public void gerarPix(int valor){

Credentials credentials = new Credentials();

JSONObject options = new JSONObject();
options.put("client_id", credentials.getClientId());
options.put("client_secret", credentials.getClientSecret());
options.put("pix_cert", credentials.getCertificadoPix());
options.put("sandbox", credentials.isSandbox());

JSONObject body = new JSONObject();
body.put("calendario", new JSONObject().put("expiracao", 3600));
//body.put("devedor", new JSONObject().put("cpf", "94271564656").put("nome", "Gorbadoc Oldbuck"));
body.put("valor", new JSONObject().put("original", valor));
body.put("chave", "sua_chave");

try {
Gerencianet gn = new Gerencianet(options);
JSONObject response = gn.call("pixCreateImmediateCharge", new HashMap(), body);
System.out.println(response);
}catch (GerencianetException e){
System.out.println(e.getError());
System.out.println(e.getErrorDescription());
}
catch (Exception e) {
System.out.println(e.getMessage());
}

}


static public void gerarQrCode(String locId){

Credentials credentials = new Credentials();

HashMap options = new HashMap();
options.put("client_id", credentials.getClientId());
options.put("client_secret", credentials.getClientSecret());
options.put("pix_cert", credentials.getCertificadoPix());
options.put("sandbox", credentials.isSandbox());

HashMap params = new HashMap();
params.put("id", locId );

try {
Gerencianet gn = new Gerencianet(options);
Map response = gn.call("pixGenerateQRCode", params, new HashMap());

File outputfile = new File("qrCodeImage.png");
ImageIO.write(ImageIO.read(new ByteArrayInputStream(javax.xml.bind.DatatypeConverter.parseBase64Binary(((String) response.get("imagemQrcode")).split(",")[1]))), "png", outputfile);
Desktop desktop = Desktop.getDesktop();
desktop.open(outputfile);

}catch (GerencianetException e){
System.out.println(e.getError());
System.out.println(e.getErrorDescription());
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

Avatar discord do usuario joao_efi

joao_efi

Ver Respostas

Boa tarde @flaresnootechsistemas0065 tudo certo? 🙂
Para autenticar é necessário utilizar o client_id e client_secret da sua aplicação em produção, no link abaixo você encontra como gerá-los:
https://gerencianet.com.br/artigo/como-obter-chaves-client-id-e-client-secret-na-api/#versao-7

Vale verificar também se a variável SANDBOX condiz com as credenciais utilizadas, sendo:

sandbox: true //AMBIENTE DE HOMOLOGAÇÃO
sandbox: false //AMBIENTE DE PRODUÇÃO

Avatar discord do usuario lucsa.dev

lucsa.dev

estranho que quando eu alterei public key, secret id, e certificado para os da conta PJ eu não tinha erro e a transferencia estava sendo feita para minha conta pessoal ainda, só depois que mudei a chave que começou retornar erro