Histórico de mensagens sobre credentials em dúvidas

EXIBINDO CONVERSAS RECENTES:

Texto: credentials
Canal: dúvidas
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, @patolas_. Bom dia! Tudo bem?
Tente usar nosso outro conversor: https://efipay.github.io/encode-credentials/certificado.html

Avatar discord do usuario joaolucas_efi

joaolucas_efi

Ver Respostas

@luizfeleal existem algumas falha em como você montou a requisição, segue um exemplo de como fazer a autenticação:

php
//Desenvolvido pela Consultoria Técnica da Efí
$config = [
"certificado" => "./certificado.pem",
"client_id" => "YOUR-CLIENT-ID",
"client_secret" => "YOUR-CLIENT-SECRET"
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://pix-h.api.efipay.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 "
";
?>

Avatar discord do usuario luizfeleal

luizfeleal

Ver Respostas

$credenciaisBase64 = base64_encode($cliente_id . ":" . $client_secret);

$url = env('URL_EFI') . "/oauth/token";

// Inicializa a sessão cURL
$ch = curl_init();


curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); // Verifica o certificado do servidor
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // Verifica o host do certificado
curl_setopt($ch, CURLOPT_SSLCERT, $certificado); // Define o certificado a ser usado


// Adiciona os dados do cliente como autenticação básica
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
"Authorization: Basic " . $credenciaisBase64

]);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'grant_type' => 'client_credentials',
]));

// Executa a requisição e obtém a resposta
$resposta = curl_exec($ch);

Avatar discord do usuario electrospiroze

electrospiroze

Ver Respostas

fiz a conversão do certificado no link que foi disponibilizado na doc (https://efipay.github.io/encode-credentials/certificado.html" class="link-msg">https://efipay.github.io/encode-credentials/certificado.html) e o mesmo foi feito para as credenciais (https://efipay.github.io/encode-credentials/)

Avatar discord do usuario guilherme_efi

guilherme_efi

No arquivo, /credentials/options.php, o parâmetro "debug" está true?

Avatar discord do usuario acmedeiros

acmedeiros

Ver Respostas

Bom dia, estou com problema na autenticação:
"Could not authenticate. Please make sure you are using correct credentials and if you are using then in the correct environment"

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @elielpsoares. Tudo bem?
O grant_type deve ser uma string, assim var data = JSON.stringify({ "grant_type": "client_credentials" });.
Vi que na documentação está como você fez, vamos providenciar a atualização.

Para facilitar sua integração, você pode também usar nossa SDK de node: https://github.com/efipay/sdk-node-apis-efi
Nela já é feito o processo de autenticação e possui exemplos de para todos os endpoints das nossas APIs.

Avatar discord do usuario ilusinusmate

ilusinusmate

Ver Respostas

import os
# import ssl
# import certifi
from dotenv import load_dotenv
from efipay import EfiPay

load_dotenv("../../.env")

# if not os.path.isfile('C:\\Users\\Joaogsp\\Desktop\\j1\\programas\\Projetos Athavus\\emporio_sertanejo\\emporio_sertanejo\\emporio-ec2.pem'):
# raise FileNotFoundError("Certificate file not found.")



# cert = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
# cert.load_verify_locations(cafile=certifi.where())
# cert.load_cert_chain('C:\\Users\\Joaogsp\\Desktop\\j1\\programas\\Projetos Athavus\\emporio_sertanejo\\emporio_sertanejo\\emporio-ec2.pem')

credentials = {
'client_id':os.getenv("CLIENT_ID"),
'client_secret': os.getenv("CLIENT_SECRET"),
'sandbox': True,
'certificate': 'C:\\Users\\Joaogsp\\Desktop\\j1\\programas\\Projetos Athavus\\emporio_sertanejo\\emporio_sertanejo\\emporio-ec2.pem'
}

efi = EfiPay(credentials)

body = {
'calendario': {
'expiracao': 3600
},
'devedor': {
'cpf': '',
'nome': ''
},
'valor': {
'original': '00.01'
},
'chave': '83988864397',
'solicitacaoPagador': 'Cobrança dos serviços prestados.'
}

response = efi.pix_create_immediate_charge(body=body)
print(response)
Esse é exatamente o meu código

Avatar discord do usuario tiagoalmeida_90510

tiagoalmeida_90510

Ver Respostas

@guilherme_efi estou passando esse payload para a classe EfiPay(credentials)
imagem enviada na mensagem pelo usuario tiagoalmeida_90510

Avatar discord do usuario tiagoalmeida_90510

tiagoalmeida_90510

Bom dia pessoal, estou tentando utilizar a sdk python para fazer authenticação e gerar uma cobrança pix. mas estou recebendo o seguinte erro: { 'Status': 401, 'Message': 'Could not authenticate. Please make sure you are using correct credentials and if you are using then in the correct environment.' }
estou passando um certificado .pem como a documentação descreve.
tmb verifiquei se estou passando as credenciais certas.
alguem já teve esse erro que me possa da uma luz ?

Avatar discord do usuario gabriel_efi

gabriel_efi

Em Node por exemplo, temos o seguinte exemplo:

"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://pix.api.efipay.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 douglasalves_27133

douglasalves_27133

Ver Respostas

Boa noite, posso adicionar conteúdo do arquivo do meu certificado diretamente no campo especificado, ao invés do caminho para o arquivo? (CREDENTIALS = {
'client_id': '',
'client_secret': '',
'sandbox': False,
'certificate': 'Salvo em BD'
}), meu certificado está salvo em banco de dados. e ao recupera-lo recebo o conteúdo do arquivo.

Avatar discord do usuario luizg7954

luizg7954

Ver Respostas

Ola alguem pode me ajudar?
Eu estou recebendo "JSONError: Unexpected token 'u' at 1:1
unauthorized^" como resposta quando envio uma solicitacao para o POST https://cobrancas-h.api.efipay.com.br/v1/authorize" class="link-msg">https://cobrancas-h.api.efipay.com.br/v1/authorize
quando eu comento o conteudo do body
{
"grant_type": "client_credentials"
}
eu recebo apenas um "unauthorized", a client key e client secret estao corretas e nos lugares certos, o certificado esta para a seguinte rota: https://cobrancas-h.api.efipay.com.br
e eu escolhi a opcao PFX, a extensao do certificado e .p12 (homologacaocertificado432.p12)

Tudo isso esta sendo feito pelo POSTMAN

Avatar discord do usuario pogere

pogere

Estou testando o sdk python no ambiente wsl, não está autorizando.
No Postman Windows tudo certo.

O código é o seguinte:

from efipay import EfiPay

def cobrancaRenovacaoPlano(user, valor, descricao):
# COBRAR RENOVACAO user.profile.plano.id user.profile.periodo
credentials = {
'client_id': 'Client_Id_XXXXXXXXXXXXXXXXXXXXXXXX',
'client_secret': 'Client_Secret_XXXXXXXXXXXXXXXXXXX',
'sandbox': True,
'certificate': 'certificados/homologacao-XXXXXXXXXXX.pem'
}
efi = EfiPay(credentials)

Testei os.path.exists(credentials['certificate']) e retorna True.

Ao executar:
response = efi.pix_create_immediate_charge(body=body)

Retorna:
"{ 'Status': 401, 'Message': 'Could not authenticate. Please make sure you are using correct credentials and if you are using then in the correct environment.' } "

Testei com o certificado P12, ambiente de Produção e o resultado é sempre o mesmo.

Como posso obter mais informações sobre o que está acontecendo?

Avatar discord do usuario kecatiengo_73426

kecatiengo_73426

},
data: {
error: 'invalid_client',
error_description: 'Invalid or inactive credentials'
}
}
}

Avatar discord do usuario gazua4127

gazua4127

Ver Respostas

Bom dia. Será quem alguém poderia me ajudar?
Sou devenvolvedor e estou começando a usar o gerencianet. Estou tendo erros ao tentar obter o token de autorização:

{
"error": "invalid_client",
"error_description": "Invalid or inactive credentials"
}
imagem enviada na mensagem pelo usuario gazua4127

Avatar discord do usuario felipevflores

felipevflores

Ver Respostas

estou tentando integrar a api pix utilizando sdk go, e segundo o exemplo

credentials := map[string]interface{}{
"client_id": p.payment.ClientID,
"client_secret": p.payment.ClientSecret,
"sandbox": true,
"timeout": 20,
"CA": p.payment.PathCert,
"Key": p.payment.PathCert,
}


Possui dois campos de chave, e pela plataforma consigo apenas uma

Tem algo que estou fazendo de errado?

Avatar discord do usuario joehenrique7

joehenrique7

No exemplo tem:
Map credentials = {
'client_id': '',
'client_secret': '',
'account_id': '',
'sandbox': true,
'certificate': '',
'private_key': ''
};

onde pego este dado