Histórico de mensagens sobre Client_ID em pix

EXIBINDO CONVERSAS RECENTES:

Texto: Client_ID
Canal: pix
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 eduzenite

eduzenite

Ver Respostas

Na chamada do SDK não tem chave pix, só client_id, client_secret e pix_cert. Todos são da mesma conta e mesma aplicação. Está funcionando em homologação, mas em produção não. Vi na internet que minha conta pode estar com alguma pendência, você pode verificar para mim, por favor?

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 igor_efi

igor_efi

Ver Respostas

Você precisa informar o path do certificado na variável que armazena as informações de integração. Exemplo:

module.exports = {
// PRODUÇÃO = false
// HOMOLOGAÇÃO = true
sandbox: false,
client_id: 'seuClientId',
client_secret: 'seuClientSecret',
pix_cert: 'caminhoAteOCertificadoPix',
};

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 douglasfernandes

douglasfernandes

Boa noite, não to conseguindo fazer o post do auth token fica retornando invalid_client para mim
Eu coloquei todas as credenciais, certificados p12(Homologação e produção)
Nos enviroments coloquei o endpoint de homologação e de produção
Escolhi o de homologação: api-pix-h.gerencianet.com.br
Coloquei o Chave Client ID e o Chave Client Secret corretamente e não sei o que está acontecendo.

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Boa tarde @azsantosk ! Você possui um sistema próprio ou usaria algum sistema integrado?
Para utilizar a Api Pix, é necessário você criar uma aplicação em sua conta Gerencianet para obter as credenciais client_id e client_secret e também criar um certificado

Avatar discord do usuario azsantosk

azsantosk

Ver Respostas

Já consegui o client_id e o client_secret mas ainda não consigo fazer uma requisição get

Avatar discord do usuario edeniltonfb5762

edeniltonfb5762

Ver Respostas

Boa tarde!

Estou tentando chamar o endpoint "pixCreateImmediateCharge" dentro de um projeto Spring Boot, mas não estou obtendo sucesso.
Baixei o projeto gn-api-sdk-java-examples do repositório github da Gerencianet e ele funciona perfeitamente com as minhas credenciais (client_id, client_secret e pix_cert). Entretanto, dentro do meu projeto, com as mesmas configurações, dá erro: "Connection reset"

Alguém já passou por isso e conseguiu resolver?

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Boa tarde @4correavitor ! Você deve autenticar utilizando o Basic Auth, inserindo o client_id e client_secret de sua aplicação.

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

@Deleted User A autenticação vale para todo o conjunto

client_id
client_secret
sandbox
certificado
Para o ambiente de homologação deve-se utilizar as credenciais e certificado de homologação com a variável sandbox como true
Já para o ambiente de produção deve-se utilizar as credenciais e certificado de produdção com a variável sandbox como false

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 ferdead2

ferdead2

Eu tenho uma aplicação em vb.net que está funcionando normal o acesso a este endpoint.. e essa aplicação nova que estou fazendo em dart, utilizando o mesmo certificado client id/secret está dando esse erro de scope..

Avatar discord do usuario ferdead2

ferdead2

sabe o que é estranho.. eu tenho uma aplicação em vb.net que faz o acesso ao endpoint normalmente.. agora estou desenvolvendo uma aplicação em dart, utilizando o mesmo certificado, com client id/secret, deu esse erro ai...

Avatar discord do usuario andrebarbosa_dev

andrebarbosa_dev

Ver Respostas

Fazendo isso não preciso de usar outro chave client id e nem secret né? so a chavepix nova?

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Pra produção você precisa criar uma chave Pix associada à sua conta de produção, e mudar certificado, client-id e client-secret.

Avatar discord do usuario joao_efi

joao_efi

No caso você precisa informar o caminho dentro do sistema de arquivos, não via http.
Por exemplo, se a estrutura do seu projeto é:

MeuProjeto
|- gn-api-sdk-php
| |- productionCertificate.pem
|- config.json
No seu arquivo de config deve ser informado nesse tipo:
json
{
"client_id": "SEU_client_id",
"client_secret": "SEU_client_secret",
"pix_cert": "./gn-api-sdk-php/productionCertificate.pem",
"sandbox": false,
"debug": false,
"timeout": 30
}

Avatar discord do usuario jessica_efi

jessica_efi

Ver Respostas

Bom dia @keithyoder ! Você inseriu o client_id e client_secret nesse arquivo https://github.com/gerencianet/gn-api-sdk-ruby/blob/master/examples/credentials.rb e o certificado nessa pasta https://github.com/gerencianet/gn-api-sdk-ruby/tree/master/examples/certs ?